Skip to content

Commit

Permalink
[Fix ohmyzsh#46] Show vicmd indicator in all keymaps
Browse files Browse the repository at this point in the history
  • Loading branch information
sorin-ionescu committed Mar 18, 2012
1 parent b4fd92d commit a51cfb4
Showing 1 changed file with 34 additions and 34 deletions.
68 changes: 34 additions & 34 deletions keyboard.zsh
Expand Up @@ -61,6 +61,40 @@ keyinfo=(
'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'
if [[ "$keymap" == (emacs|) ]]; then
# Use Emacs key bindings.
Expand Down Expand Up @@ -124,40 +158,6 @@ elif [[ "$keymap" == vi ]]; then
# Use vi key bindings.
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.
bindkey -M vicmd "v" edit-command-line

Expand Down

0 comments on commit a51cfb4

Please sign in to comment.