aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar furunkel <julian@linux4you.it>2014-01-15 02:29:37 -0800
committerGravatar furunkel <julian@linux4you.it>2014-01-15 02:29:37 -0800
commitc25e2e611d139a33ecc13c1831ec2265277f1403 (patch)
treeac8433e00fa5b983ca63e0f34764479ad2b00cd9
parent7be8147b80fc2f712f3537f0c9295bfa31497047 (diff)
parent9684cbf85014509783415e4c635bcac8cc60544b (diff)
Merge pull request #2 from maxfl/bind_mode
Add optional arguments to fish_default_key_bindings
-rw-r--r--share/functions/fish_default_key_bindings.fish192
1 files changed, 97 insertions, 95 deletions
diff --git a/share/functions/fish_default_key_bindings.fish b/share/functions/fish_default_key_bindings.fish
index a46d3f94..58f7a4d9 100644
--- a/share/functions/fish_default_key_bindings.fish
+++ b/share/functions/fish_default_key_bindings.fish
@@ -1,121 +1,123 @@
-function fish_default_key_bindings -d "Default (Emacs-like) key bindings for fish"
-
- # Clear earlier bindings, if any
- bind --erase --all
+function fish_default_key_bindings -d "Default (Emacs-like) key bindings for fish" -a mode
+ if not set -q mode[1]
+ # Clear earlier bindings, if any
+ bind --erase --all
+ end
# This is the default binding, i.e. the one used if no other binding matches
- bind "" self-insert
+ bind $argv "" self-insert
- bind \n execute
+ bind $argv \n execute
- bind \ck kill-line
- bind \cy yank
- bind \t complete
+ bind $argv \ck kill-line
+ bind $argv \cy yank
+ bind $argv \t complete
- bind \e\n "commandline -i \n"
+ bind $argv \e\n "commandline -i \n"
- bind \e\[A up-or-search
- bind \e\[B down-or-search
- bind -k down down-or-search
- bind -k up up-or-search
+ bind $argv \e\[A up-or-search
+ bind $argv \e\[B down-or-search
+ bind $argv -k down down-or-search
+ bind $argv -k up up-or-search
- bind \e\[C forward-char
- bind \e\[D backward-char
- bind -k right forward-char
- bind -k left backward-char
+ bind $argv \e\[C forward-char
+ bind $argv \e\[D backward-char
+ bind $argv -k right forward-char
+ bind $argv -k left backward-char
- bind -k dc delete-char
- bind -k backspace backward-delete-char
- bind \x7f backward-delete-char
+ bind $argv -k dc delete-char
+ bind $argv -k backspace backward-delete-char
+ bind $argv \x7f backward-delete-char
- bind \e\[H beginning-of-line
- bind \e\[F end-of-line
+ bind $argv \e\[H beginning-of-line
+ bind $argv \e\[F end-of-line
# for PuTTY
# https://github.com/fish-shell/fish-shell/issues/180
- bind \e\[1~ beginning-of-line
- bind \e\[3~ delete-char
- bind \e\[4~ end-of-line
+ bind $argv \e\[1~ beginning-of-line
+ bind $argv \e\[3~ delete-char
+ bind $argv \e\[4~ end-of-line
# OS X SnowLeopard doesn't have these keys. Don't show an annoying error message.
- bind -k home beginning-of-line 2> /dev/null
- bind -k end end-of-line 2> /dev/null
- bind \e\[3\;2~ backward-delete-char # Mavericks Terminal.app shift-delete
-
- bind \e\eOC nextd-or-forward-word
- bind \e\eOD prevd-or-backward-word
- bind \e\e\[C nextd-or-forward-word
- bind \e\e\[D prevd-or-backward-word
- bind \eO3C nextd-or-forward-word
- bind \eO3D prevd-or-backward-word
- bind \e\[3C nextd-or-forward-word
- bind \e\[3D prevd-or-backward-word
- bind \e\[1\;3C nextd-or-forward-word
- bind \e\[1\;3D prevd-or-backward-word
-
- bind \e\eOA history-token-search-backward
- bind \e\eOB history-token-search-forward
- bind \e\e\[A history-token-search-backward
- bind \e\e\[B history-token-search-forward
- bind \eO3A history-token-search-backward
- bind \eO3B history-token-search-forward
- bind \e\[3A history-token-search-backward
- bind \e\[3B history-token-search-forward
- bind \e\[1\;3A history-token-search-backward
- bind \e\[1\;3B history-token-search-forward
-
- bind \ca beginning-of-line
- bind \ce end-of-line
- bind \ey yank-pop
- bind \ch backward-delete-char
- bind \cw backward-kill-word
- bind \cp history-search-backward
- bind \cn history-search-forward
- bind \cf forward-char
- bind \cb backward-char
- bind \ct transpose-chars
- bind \et transpose-words
- bind \eu upcase-word
+ bind $argv -k home beginning-of-line 2> /dev/null
+ bind $argv -k end end-of-line 2> /dev/null
+ bind $argv \e\[3\;2~ backward-delete-char # Mavericks Terminal.app shift-delete
+
+ bind $argv \e\eOC nextd-or-forward-word
+ bind $argv \e\eOD prevd-or-backward-word
+ bind $argv \e\e\[C nextd-or-forward-word
+ bind $argv \e\e\[D prevd-or-backward-word
+ bind $argv \eO3C nextd-or-forward-word
+ bind $argv \eO3D prevd-or-backward-word
+ bind $argv \e\[3C nextd-or-forward-word
+ bind $argv \e\[3D prevd-or-backward-word
+ bind $argv \e\[1\;3C nextd-or-forward-word
+ bind $argv \e\[1\;3D prevd-or-backward-word
+
+ bind $argv \e\eOA history-token-search-backward
+ bind $argv \e\eOB history-token-search-forward
+ bind $argv \e\e\[A history-token-search-backward
+ bind $argv \e\e\[B history-token-search-forward
+ bind $argv \eO3A history-token-search-backward
+ bind $argv \eO3B history-token-search-forward
+ bind $argv \e\[3A history-token-search-backward
+ bind $argv \e\[3B history-token-search-forward
+ bind $argv \e\[1\;3A history-token-search-backward
+ bind $argv \e\[1\;3B history-token-search-forward
+
+ bind $argv \ca beginning-of-line
+ bind $argv \ce end-of-line
+ bind $argv \ey yank-pop
+ bind $argv \ch backward-delete-char
+ bind $argv \cw backward-kill-word
+ bind $argv \cp history-search-backward
+ bind $argv \cn history-search-forward
+ bind $argv \cf forward-char
+ bind $argv \cb backward-char
+ bind $argv \ct transpose-chars
+ bind $argv \et transpose-words
+ bind $argv \eu upcase-word
# This clashes with __fish_list_current_token
- # bind \el downcase-word
- bind \ec capitalize-word
- bind \e\x7f backward-kill-word
- bind \eb backward-word
- bind \ef forward-word
- bind \e\[1\;5C forward-word
- bind \e\[1\;5D backward-word
- bind \e\[1\;9A history-token-search-backward # iTerm2
- bind \e\[1\;9B history-token-search-forward # iTerm2
- bind \e\[1\;9C forward-word #iTerm2
- bind \e\[1\;9D backward-word #iTerm2
- bind \ed forward-kill-word
- bind -k ppage beginning-of-history
- bind -k npage end-of-history
- bind \e\< beginning-of-buffer
- bind \e\> end-of-buffer
-
- bind \el __fish_list_current_token
- bind \ew 'set tok (commandline -pt); if test $tok[1]; echo; whatis $tok[1]; commandline -f repaint; end'
- bind \cl 'clear; commandline -f repaint'
- bind \cc 'commandline ""'
- bind \cu backward-kill-line
- bind \ed kill-word
- bind \cw backward-kill-path-component
- bind \ed 'set -l cmd (commandline); if test -z "$cmd"; echo; dirh; commandline -f repaint; else; commandline -f kill-word; end'
- bind \cd delete-or-exit
+ # bind $argv \el downcase-word
+ bind $argv \ec capitalize-word
+ bind $argv \e\x7f backward-kill-word
+ bind $argv \eb backward-word
+ bind $argv \ef forward-word
+ bind $argv \e\[1\;5C forward-word
+ bind $argv \e\[1\;5D backward-word
+ bind $argv \e\[1\;9A history-token-search-backward # iTerm2
+ bind $argv \e\[1\;9B history-token-search-forward # iTerm2
+ bind $argv \e\[1\;9C forward-word #iTerm2
+ bind $argv \e\[1\;9D backward-word #iTerm2
+ # Bash compatibility
+ # https://github.com/fish-shell/fish-shell/issues/89
+ bind $argv \e. history-token-search-backward
+ bind $argv -k ppage beginning-of-history
+ bind $argv -k npage end-of-history
+ bind $argv \e\< beginning-of-buffer
+ bind $argv \e\> end-of-buffer
+
+ bind $argv \el __fish_list_current_token
+ bind $argv \ew 'set tok (commandline -pt); if test $tok[1]; echo; whatis $tok[1]; commandline -f repaint; end'
+ bind $argv \cl 'clear; commandline -f repaint'
+ bind $argv \cc 'commandline ""'
+ bind $argv \cu backward-kill-line
+ bind $argv \cw backward-kill-path-component
+ bind $argv \ed 'set -l cmd (commandline); if test -z "$cmd"; echo; dirh; commandline -f repaint; else; commandline -f kill-word; end'
+ bind $argv \cd delete-or-exit
# Allow reading manpages by pressing F1
- bind -k f1 'man (basename (commandline -po; echo))[1] ^/dev/null; or echo -n \a'
+ bind $argv -k f1 'man (basename (commandline -po; echo))[1] ^/dev/null; or echo -n \a'
# This will make sure the output of the current command is paged using the less pager when you press Meta-p
- bind \ep '__fish_paginate'
+ bind $argv \ep '__fish_paginate'
# term-specific special bindings
switch "$TERM"
case 'rxvt*'
- bind \e\[8~ end-of-line
- bind \eOc forward-word
- bind \eOd backward-word
+ bind $argv \e\[8~ end-of-line
+ bind $argv \eOc forward-word
+ bind $argv \eOd backward-word
end
end