diff -r 157f894ef9f7 -r c8b92fa96f48 zshrc.d/60-vi-showmode.zrc --- 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.