first commit
This commit is contained in:
33
profiles/base/.zsh/conf.d/02-vi-keybindings.zsh
Normal file
33
profiles/base/.zsh/conf.d/02-vi-keybindings.zsh
Normal file
@@ -0,0 +1,33 @@
|
||||
# Enable vi keybindings
|
||||
bindkey -v
|
||||
export KEYTIMEOUT=1
|
||||
autoload -z edit-command-line
|
||||
zle -N edit-command-line
|
||||
bindkey '^e' edit-command-line
|
||||
|
||||
# Fix backspace character behavior in vi mode
|
||||
bindkey '^?' backward-delete-char
|
||||
bindkey '^W' backward-kill-word
|
||||
bindkey '^H' backward-delete-char # Control-h also deletes the previous char.
|
||||
bindkey '^U' backward-kill-line
|
||||
|
||||
# Change cursor shape for different vi modes
|
||||
zle-keymap-select() {
|
||||
if [[ ${KEYMAP} == vicmd ]] ||
|
||||
[[ $1 = "block" ]]; then
|
||||
echo -ne '\e[4 q'
|
||||
elif [[ ${KEYMAP} == main ]] ||
|
||||
[[ ${KEYMAP} == viins ]] ||
|
||||
[[ ${KEYMAP} == "" ]] ||
|
||||
[[ $1 == "beam" ]]; then
|
||||
echo -ne '\e[6 q'
|
||||
fi
|
||||
}
|
||||
zle -N zle-keymap-select
|
||||
zle-line-init() {
|
||||
zle -K viins # Initiate `vi insert` as keymap (can be removed if `bindkey -V` has been set elsewhere)
|
||||
echo -ne '\e[6 q'
|
||||
}
|
||||
zle -N zle-line-init
|
||||
echo -ne '\e[6 q' # Use beam shape cursor on startup
|
||||
preexec() { echo -ne '\e[6 q' } # Use beam shape cursor for each new prompt
|
||||
Reference in New Issue
Block a user