diff options
Diffstat (limited to 'plugins/thefuck')
-rw-r--r-- | plugins/thefuck/README.md | 9 | ||||
-rw-r--r-- | plugins/thefuck/thefuck.plugin.zsh | 20 |
2 files changed, 29 insertions, 0 deletions
diff --git a/plugins/thefuck/README.md b/plugins/thefuck/README.md new file mode 100644 index 000000000..bd407b316 --- /dev/null +++ b/plugins/thefuck/README.md @@ -0,0 +1,9 @@ +# The Fuck + +[The Fuck](https://github.com/nvbn/thefuck) plugin — magnificent app which corrects your previous console command. + +## Usage +Press `ESC` twice to correct previous console command. + +## Notes +`Esc`-`Esc` key binding conflicts with [sudo](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/sudo) plugin. diff --git a/plugins/thefuck/thefuck.plugin.zsh b/plugins/thefuck/thefuck.plugin.zsh new file mode 100644 index 000000000..b8586c70d --- /dev/null +++ b/plugins/thefuck/thefuck.plugin.zsh @@ -0,0 +1,20 @@ +if [[ -z $commands[thefuck] ]]; then + echo 'thefuck is not installed, you should "pip install thefuck" or "brew install thefuck" first.' + echo 'See https://github.com/nvbn/thefuck#installation' + return 1 +fi + +# Register alias +eval "$(thefuck --alias)" + +fuck-command-line() { + local FUCK="$(THEFUCK_REQUIRE_CONFIRMATION=0 thefuck $(fc -ln -1 | tail -n 1) 2> /dev/null)" + [[ -z $FUCK ]] && echo -n -e "\a" && return + BUFFER=$FUCK + zle end-of-line +} +zle -N fuck-command-line +# Defined shortcut keys: [Esc] [Esc] +bindkey -M emacs '\e\e' fuck-command-line +bindkey -M vicmd '\e\e' fuck-command-line +bindkey -M viins '\e\e' fuck-command-line |