zshrc.d/60-vi-showmode.zrc
changeset 45 c8b92fa96f48
parent 30 e26330cd408f
child 47 f25fda256b1d
--- a/zshrc.d/60-vi-showmode.zrc	Mon Mar 02 13:16:10 2020 +0100
+++ b/zshrc.d/60-vi-showmode.zrc	Fri Jul 10 09:42:03 2020 +0200
@@ -195,7 +195,7 @@
    builtin zle .vi-cmd-mode
 }
 zle -N vi-cmd-mode
-bindkey -M viins "" vi-cmd-mode
+bindkey -M viins "^[" vi-cmd-mode
 
 
 ###       vi-oper-swap-case
@@ -206,25 +206,24 @@
 ###              characters on the current line.
 ###
 
-bindkey -M vicmd "g~" vi-oper-swap-case
+# Specific to command mode
+bindkey -M vicmd "g~"    vi-oper-swap-case
 bindkey -M vicmd 'guw'   down-case-word
 bindkey -M vicmd 'gUw'   up-case-word
 
-
-bindkey -M vicmd "[2~" vi-insert
+bindkey -M vicmd "^[[2~" vi-insert
 bindkey -M vicmd 'q'     push-line
-bindkey -M vicmd '[5~' history-beginning-search-backward # PgUp
-bindkey -M vicmd '[6~' history-beginning-search-forward  # PgDn
 
-bindkey -M viins '[5~' history-beginning-search-backward # PgUp
-bindkey -M viins '[6~' history-beginning-search-forward  # PgDn
-bindkey -M viins '[7~' beginning-of-line
-bindkey -M viins '[8~' end-of-line
+# Specific to insert mode
 bindkey -M viins '^A'    beginning-of-line
 bindkey -M viins '^E'    end-of-line
-bindkey -M viins '[3~' delete-char
-bindkey -M viins ''  up-line-or-history
-bindkey -M viins ''  down-line-or-history
+
+bindkey -M viins '^[[5~' history-beginning-search-backward # PgUp
+bindkey -M viins '^[[6~' history-beginning-search-forward  # PgDn
+
+bindkey -M viins '^[[A'  up-line-or-history
+bindkey -M viins '^[[B'  down-line-or-history
+
 bindkey -M viins '^Xc'   copy-prev-shell-word
 bindkey -M viins '^Xf'   _correct_filename
 bindkey -M viins '^_'    undo
@@ -236,6 +235,20 @@
 bindkey -M viins '^P'    _history-complete-older
 bindkey -M viins '^N'    _history-complete-newer
 
+# Both modes
+bindkey -M viins '^[[7~' beginning-of-line
+bindkey -M vicmd '^[[7~' beginning-of-line
+bindkey -M viins '^[[8~' end-of-line
+bindkey -M vicmd '^[[8~' end-of-line
+
+bindkey -M viins '^[[H'  beginning-of-line
+bindkey -M vicmd '^[[H'  beginning-of-line
+bindkey -M viins '^[[F'  end-of-line
+bindkey -M vicmd '^[[F'  end-of-line
+
+bindkey -M viins '^[[3~' delete-char
+bindkey -M vicmd '^[[3~' delete-char
+
 bindkey -M viins -s '^X^H' 'hash -r\n'
 
 # These bindings depend on the ftzle script
@@ -244,8 +257,10 @@
 
 
 if [[ -z ${TERM:#screen} ]]; then
-  bindkey -M viins '[1~'  beginning-of-line   # Home
-  bindkey -M viins '[4~'  end-of-line         # End
+  bindkey -M viins '^[[1~'  beginning-of-line   # Home
+  bindkey -M vicmd '^[[1~'  beginning-of-line   # Home
+  bindkey -M viins '^[[4~'  end-of-line         # End
+  bindkey -M vicmd '^[[4~'  end-of-line         # End
 fi
 
 # Edit the command line using your usual editor.