From 95aa9bd97b9fb2a57f355178b2c5f01eb72ad0b6 Mon Sep 17 00:00:00 2001
From: desrum_m <martin.desrumaux@epitech.eu>
Date: Sun, 22 Feb 2015 23:07:51 +0100
Subject: Better research history with arrow keys

This change enables UP-arrow and DOWN-arrow full-line history completion.
For example, if you write `git clone` and press UP:

- Before this change,
  it will use the last command that starts with `git`.

- After this change,
  it will use the last command that starts with `git clone`.
---
 lib/key-bindings.zsh | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

(limited to 'lib/key-bindings.zsh')

diff --git a/lib/key-bindings.zsh b/lib/key-bindings.zsh
index eb2b58058..0e056dc72 100644
--- a/lib/key-bindings.zsh
+++ b/lib/key-bindings.zsh
@@ -27,11 +27,17 @@ if [[ "${terminfo[knp]}" != "" ]]; then
   bindkey "${terminfo[knp]}" down-line-or-history     # [PageDown] - Down a line of history
 fi
 
+# start typing + [Up-Arrow] - fuzzy find history forward
 if [[ "${terminfo[kcuu1]}" != "" ]]; then
-  bindkey "${terminfo[kcuu1]}" up-line-or-search      # start typing + [Up-Arrow] - fuzzy find history forward
+  autoload -U up-line-or-beginning-search
+  zle -N up-line-or-beginning-search
+  bindkey "${terminfo[kcuu1]}" up-line-or-beginning-search
 fi
+# start typing + [Down-Arrow] - fuzzy find history backward
 if [[ "${terminfo[kcud1]}" != "" ]]; then
-  bindkey "${terminfo[kcud1]}" down-line-or-search    # start typing + [Down-Arrow] - fuzzy find history backward
+  autoload -U down-line-or-beginning-search
+  zle -N down-line-or-beginning-search
+  bindkey "${terminfo[kcud1]}" down-line-or-beginning-search
 fi
 
 if [[ "${terminfo[khome]}" != "" ]]; then
-- 
cgit v1.2.3-70-g09d2