Skip to content

Commit

Permalink
Improve the Fish Shell function making it faster
Browse files Browse the repository at this point in the history
It works now with no temp file involved, which makes it a lot faster.
Also, `history --merge`, although only supported on Fish Shell 2.2+,
merges the corrected entry back into history. Neat!

Ref #89
  • Loading branch information
scorphus committed Oct 16, 2015
1 parent 3da2619 commit f5e8fe9
Showing 1 changed file with 14 additions and 13 deletions.
27 changes: 14 additions & 13 deletions thefuck/shells.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,19 +126,20 @@ def _get_overridden_aliases(self):
return ['cd', 'grep', 'ls', 'man', 'open']

def app_alias(self, fuck):
return ("set TF_ALIAS {0}\n"
"function {0} -d 'Correct your previous console command'\n"
" set -l exit_code $status\n"
" set -l eval_script"
" (mktemp 2>/dev/null ; or mktemp -t 'thefuck')\n"
" set -l fucked_up_command $history[1]\n"
" thefuck $fucked_up_command > $eval_script\n"
" . $eval_script\n"
" /bin/rm $eval_script\n"
" if test $exit_code -ne 0\n"
" history --delete $fucked_up_command\n"
" end\n"
"end").format(fuck)
return ('function {0} -d "Correct your previous console command"\n'
' set -l exit_code $status\n'
' set -x TF_ALIAS {0}\n'
' set -l fucked_up_command $history[1]\n'
' thefuck $fucked_up_command | read -l unfucked_command\n'
' if [ "$unfucked_command" != "" ]\n'
' eval $unfucked_command\n'
' if test $exit_code -ne 0\n'
' history --delete $fucked_up_command\n'
' history --merge ^ /dev/null\n'
' return 0\n'
' end\n'
' end\n'
'end').format(fuck)

@memoize
def get_aliases(self):
Expand Down

0 comments on commit f5e8fe9

Please sign in to comment.