|
|
@ -61,6 +61,40 @@ keyinfo=( |
|
|
|
'BackTab' "$terminfo[kcbt]" |
|
|
|
'BackTab' "$terminfo[kcbt]" |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Restores RPROMPT when exiting vicmd. |
|
|
|
|
|
|
|
function vi-restore-rprompt() { |
|
|
|
|
|
|
|
if (( $+RPROMPT_CACHED )); then |
|
|
|
|
|
|
|
RPROMPT="$RPROMPT_CACHED" |
|
|
|
|
|
|
|
unset RPROMPT_CACHED |
|
|
|
|
|
|
|
zle reset-prompt |
|
|
|
|
|
|
|
return 0 |
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
return 1 |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
add-zsh-trap INT vi-restore-rprompt |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Displays the current vi mode (command). |
|
|
|
|
|
|
|
function zle-keymap-select() { |
|
|
|
|
|
|
|
if ! vi-restore-rprompt && [[ "$KEYMAP" == 'vicmd' ]]; then |
|
|
|
|
|
|
|
RPROMPT_CACHED="$RPROMPT" |
|
|
|
|
|
|
|
zstyle -s ':omz:prompt' vicmd RPROMPT |
|
|
|
|
|
|
|
zle reset-prompt |
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
zle -N zle-keymap-select |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Resets the prompt after exiting edit-command-line. |
|
|
|
|
|
|
|
function zle-line-init() { |
|
|
|
|
|
|
|
vi-restore-rprompt |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
zle -N zle-line-init |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Resets the prompt after the line has been accepted. |
|
|
|
|
|
|
|
function zle-line-finish() { |
|
|
|
|
|
|
|
vi-restore-rprompt |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
zle -N zle-line-finish |
|
|
|
|
|
|
|
|
|
|
|
zstyle -s ':omz:editor' keymap 'keymap' |
|
|
|
zstyle -s ':omz:editor' keymap 'keymap' |
|
|
|
if [[ "$keymap" == (emacs|) ]]; then |
|
|
|
if [[ "$keymap" == (emacs|) ]]; then |
|
|
|
# Use Emacs key bindings. |
|
|
|
# Use Emacs key bindings. |
|
|
@ -124,40 +158,6 @@ elif [[ "$keymap" == vi ]]; then |
|
|
|
# Use vi key bindings. |
|
|
|
# Use vi key bindings. |
|
|
|
bindkey -v |
|
|
|
bindkey -v |
|
|
|
|
|
|
|
|
|
|
|
# Restores RPROMPT when exiting vicmd. |
|
|
|
|
|
|
|
function vi-restore-rprompt() { |
|
|
|
|
|
|
|
if (( $+RPROMPT_CACHED )); then |
|
|
|
|
|
|
|
RPROMPT="$RPROMPT_CACHED" |
|
|
|
|
|
|
|
unset RPROMPT_CACHED |
|
|
|
|
|
|
|
zle reset-prompt |
|
|
|
|
|
|
|
return 0 |
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
return 1 |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
add-zsh-trap INT vi-restore-rprompt |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Displays the current vi mode (command). |
|
|
|
|
|
|
|
function zle-keymap-select() { |
|
|
|
|
|
|
|
if ! vi-restore-rprompt && [[ "$KEYMAP" == 'vicmd' ]]; then |
|
|
|
|
|
|
|
RPROMPT_CACHED="$RPROMPT" |
|
|
|
|
|
|
|
zstyle -s ':omz:prompt' vicmd RPROMPT |
|
|
|
|
|
|
|
zle reset-prompt |
|
|
|
|
|
|
|
fi |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
zle -N zle-keymap-select |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Resets the prompt after exiting edit-command-line. |
|
|
|
|
|
|
|
function zle-line-init() { |
|
|
|
|
|
|
|
vi-restore-rprompt |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
zle -N zle-line-init |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Resets the prompt after the line has been accepted. |
|
|
|
|
|
|
|
function zle-line-finish() { |
|
|
|
|
|
|
|
vi-restore-rprompt |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
zle -N zle-line-finish |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Edit command in an external editor. |
|
|
|
# Edit command in an external editor. |
|
|
|
bindkey -M vicmd "v" edit-command-line |
|
|
|
bindkey -M vicmd "v" edit-command-line |
|
|
|
|
|
|
|
|
|
|
|