refactor code and add fallback prompt to zsh

This commit is contained in:
2026-02-13 10:19:45 +01:00
parent 1cdc70eb70
commit 25a4a6076c
19 changed files with 150 additions and 189 deletions

View File

@@ -0,0 +1,37 @@
# 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'
psvar[1]="(cmd) "
elif [[ ${KEYMAP} == main ]] ||
[[ ${KEYMAP} == viins ]] ||
[[ -z ${KEYMAP} ]] ||
[[ $1 == beam ]]; then
echo -ne '\e[6 q'
psvar[1]="(ins) "
fi
zle reset-prompt
}
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'
psvar[1]="(ins) "
}
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