aboutsummaryrefslogtreecommitdiffhomepage
path: root/share/functions/fish_vi_key_bindings.fish
diff options
context:
space:
mode:
authorGravatar Maxim Gonchar <gmaxfl@gmail.com>2014-01-15 00:21:13 +0800
committerGravatar Maxim Gonchar <gmaxfl@gmail.com>2014-01-15 00:21:13 +0800
commitb0e94c15e63d564fe2a8acf97eb33d7f768b0129 (patch)
tree82a076041059d9622c32f124953be2aca2a3e8e0 /share/functions/fish_vi_key_bindings.fish
parent874d3aca45ccb14a73be00f2e25293d1ba0f2f9d (diff)
Update vi bindings:
The following normal mode bindings are added: o, I, A, gg, G, g^, g$, x, X, backspace, d*, D, s, S, c*, C, ~, gu, gU, J, K, y*, Y, p, P I was not able to add binding for 'O' dd now deletes the whole line as vim, while D deletes the line to the end. c, s, y act the same way
Diffstat (limited to 'share/functions/fish_vi_key_bindings.fish')
-rw-r--r--share/functions/fish_vi_key_bindings.fish102
1 files changed, 86 insertions, 16 deletions
diff --git a/share/functions/fish_vi_key_bindings.fish b/share/functions/fish_vi_key_bindings.fish
index ab5c425e..9d8f3f5b 100644
--- a/share/functions/fish_vi_key_bindings.fish
+++ b/share/functions/fish_vi_key_bindings.fish
@@ -2,25 +2,43 @@ function fish_vi_key_bindings -d "vi-like key bindings for fish"
bind --erase --all
+ ##
+ ## command mode
+ ##
+ #bind -m command : force-repaint
+ #bind -M command q exit
+ #bind -M command -m default \e force-repaint
+ #bind -M command -m default \cc force-repaint
+
+ bind :q exit
+
#
- # command (default) mode
+ # normal (default) mode
#
- bind \cd exit
- bind :q exit
-
+ bind \cd exit
bind h backward-char
bind l forward-char
bind \e\[C forward-char
bind \e\[D backward-char
bind -k right forward-char
bind -k left backward-char
- bind \n execute
+ bind \n execute
bind -m insert i force-repaint
+ bind -m insert I beginning-of-line force-repaint
bind -m insert a forward-char force-repaint
+ bind -m insert A end-of-line force-repaint
+
+ bind -m insert o "commandline -a \n" down-line force-repaint
+ #bind -m insert O beginning-of-line "commandline -i \n" up-line force-repaint # doesn't work
+
+ bind gg beginning-of-buffer
+ bind G end-of-buffer
bind \x24 end-of-line
bind \x5e beginning-of-line
+ bind g\x24 end-of-line
+ bind g\x5e beginning-of-line
bind \e\[H beginning-of-line
bind \e\[F end-of-line
@@ -44,27 +62,75 @@ function fish_vi_key_bindings -d "vi-like key bindings for fish"
bind B backward-word
bind w forward-word
bind W backward-word
-
- bind dd kill-line
-
- bind y yank
- bind p yank-pop
+ bind e forward-word
+ bind E backward-word
+
+ bind x delete-char
+ bind X backward-delete-char
+
+ bind -k dc delete-char
+
+ bind -k backspace backward-delete-char
+ bind \x7f backward-delete-char
+ bind \e\[3\;2~ backward-delete-char # Mavericks Terminal.app shift-delete
+
+ bind dd kill-whole-line
+ bind D kill-line
+ bind d\x24 kill-line
+ bind d\x5e backward-kill-line
+ bind dw kill-word
+ bind dW backward-kill-word
+ bind de kill-word
+ bind dE backward-kill-word
+ bind db backward-kill-word
+ bind dB kill-word
+
+ bind -m insert s delete-char force-repaint
+ bind -m insert S kill-whole-line force-repaint
+ bind -m insert cc kill-whole-line force-repaint
+ bind -m insert C kill-line force-repaint
+ bind -m insert c\x24 kill-line force-repaint
+ bind -m insert c\x5e backward-kill-line force-repaint
+ bind -m insert cw kill-word force-repaint
+ bind -m insert ce kill-word force-repaint
+ bind -m insert cb backward-kill-word force-repaint
+
+ bind '~' capitalize-word
+ bind gu downcase-word
+ bind gU upcase-word
+
+ bind J end-of-line delete-char
+ bind K 'man (basename (commandline -po; echo))[1] ^/dev/null; or echo -n \a'
+
+ bind yy kill-whole-line yank
+ bind Y kill-whole-line yank
+ bind y\x24 kill-line yank
+ bind y\x5e backward-kill-line yank
+ bind yw kill-word yank
+ bind yW backward-kill-word yank
+ bind ye kill-word yank
+ bind yE backward-kill-word yank
+ bind yb backward-kill-word yank
+ bind yB kill-word yank
+
+ bind p yank
+ bind P backward-char yank-pop
#
# insert mode
#
bind -M insert "" self-insert
- bind -M insert \n execute
+ bind -M insert \n execute
- bind -M insert -k dc delete-char
+ bind -M insert -k dc delete-char
- bind -M insert -k backspace backward-delete-char
- bind -M insert \x7f backward-delete-char
+ bind -M insert -k backspace backward-delete-char
+ bind -M insert \x7f backward-delete-char
# Mavericks Terminal.app shift-delete
bind -M insert \e\[3\;2~ backward-delete-char
- bind -M insert \t complete
+ bind -M insert \t complete
bind -M insert \e\[A up-or-search
bind -M insert \e\[B down-or-search
@@ -76,6 +142,10 @@ function fish_vi_key_bindings -d "vi-like key bindings for fish"
bind -M insert -k right forward-char
bind -M insert -k left backward-char
- bind -M insert -m default \cc force-repaint
+ bind -M insert -m default \cc force-repaint
bind -M insert -m default \e force-repaint
+
+ bind -M insert \cd exit
+
+ bind -M insert \ef forward-word
end