From a628b552c47be4e571dcba751ac12d0bf1d14133 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Tue, 9 Apr 2019 16:48:56 +0200 Subject: vi-mode: add CTRL+S to search history forward Fixes #6999 --- plugins/vi-mode/vi-mode.plugin.zsh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'plugins/vi-mode') diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index 93964594b..c1cdd2851 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -28,8 +28,9 @@ bindkey '^?' backward-delete-char bindkey '^h' backward-delete-char bindkey '^w' backward-kill-word -# allow ctrl-r to perform backward search in history +# allow ctrl-r and ctrl-s to search the history bindkey '^r' history-incremental-search-backward +bindkey '^s' history-incremental-search-forward # allow ctrl-a and ctrl-e to move to beginning/end of line bindkey '^a' beginning-of-line -- cgit v1.2.3-70-g09d2 From 8d7ce18e121b4fd2768906840cd5d38e5ecc148c Mon Sep 17 00:00:00 2001 From: Roman Perepelitsa Date: Tue, 9 Apr 2019 23:10:13 +0200 Subject: vi-mode: remove TRAPWINCH from plugin (#7753) * Remove TRAPWINCH; it's unrelated to vi-mode * Update prompt with ad hoc KEYMAP variable Fixes mode indicator when the terminal window is resized --- plugins/vi-mode/vi-mode.plugin.zsh | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'plugins/vi-mode') diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index c1cdd2851..a82e41439 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -1,14 +1,12 @@ # Updates editor information when the keymap changes. function zle-keymap-select() { + # update keymap variable for the prompt + VI_KEYMAP=$KEYMAP + zle reset-prompt zle -R } -# Ensure that the prompt is redrawn when the terminal size changes. -TRAPWINCH() { - zle && { zle -R; zle reset-prompt } -} - zle -N zle-keymap-select zle -N edit-command-line @@ -42,7 +40,7 @@ if [[ "$MODE_INDICATOR" == "" ]]; then fi function vi_mode_prompt_info() { - echo "${${KEYMAP/vicmd/$MODE_INDICATOR}/(main|viins)/}" + echo "${${VI_KEYMAP/vicmd/$MODE_INDICATOR}/(main|viins)/}" } # define right prompt, if it wasn't defined by a theme -- cgit v1.2.3-70-g09d2 From 5f7666e20b411ac4b71844d72945f9e122909dbc Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Sun, 19 May 2019 18:22:23 +0200 Subject: vi-mode: reset KEYMAP on accept-line (#7818) Fixes #7797 --- plugins/vi-mode/vi-mode.plugin.zsh | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'plugins/vi-mode') diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index a82e41439..c91ba05ba 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -8,13 +8,24 @@ function zle-keymap-select() { } zle -N zle-keymap-select -zle -N edit-command-line + +function vi-accept-line() { + VI_KEYMAP=main + zle accept-line +} + +zle -N vi-accept-line bindkey -v +# use custom accept-line widget to update $VI_KEYMAP +bindkey -M vicmd '^J' vi-accept-line +bindkey -M vicmd '^M' vi-accept-line + # allow v to edit the command line (standard behaviour) autoload -Uz edit-command-line +zle -N edit-command-line bindkey -M vicmd 'v' edit-command-line # allow ctrl-p, ctrl-n for navigate history (standard behaviour) -- cgit v1.2.3-70-g09d2