Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Merge branch 'bindkey'; closes issue #12

  • Loading branch information...
commit 428ea1059883e1753baa2987057edf2d83bb40cb 2 parents 04c2eca + ebde030
@sunaku sunaku authored
Showing with 21 additions and 2 deletions.
  1. +1 −0  README.md
  2. +20 −2 zsh-history-substring-search.zsh
View
1  README.md
@@ -4,6 +4,7 @@ zsh-history-substring-search
This is a clean-room implementation of the [Fish shell][1]'s history search
feature, where you can type in any part of any previously entered command
and press the UP and DOWN arrow keys to cycle through the matching commands.
+You can also use K and J in VI mode or ^P and ^N in EMACS mode for the same.
[1]: http://fishshell.com
[2]: http://www.zsh.org/mla/users/2009/msg00818.html
View
22 zsh-history-substring-search.zsh
@@ -72,8 +72,26 @@ function history-substring-search-down() {
zle -N history-substring-search-up
zle -N history-substring-search-down
-bindkey '\e[A' history-substring-search-up
-bindkey '\e[B' history-substring-search-down
+#-----------------------------------------------------------------------------
+# shortcut key bindings
+#-----------------------------------------------------------------------------
+
+# bind P and N for EMACS mode
+bindkey -M emacs '^P' history-substring-search-up
+bindkey -M emacs '^N' history-substring-search-down
+
+# bind k and j for VI mode
+bindkey -M vicmd 'k' history-substring-search-up
+bindkey -M vicmd 'j' history-substring-search-down
+
+# bind up and down arrow keys
+for keymap in 'emacs' 'viins'; do
+ for keycode in '' '0'; do
+ bindkey -M $keymap '\e['$keycode'A' history-substring-search-up
+ bindkey -M $keymap '\e['$keycode'B' history-substring-search-down
+ done
+done
+unset keymap keycode
#-----------------------------------------------------------------------------
# implementation details
Please sign in to comment.
Something went wrong with that request. Please try again.