diff options
author | Soispha <soispha@vhack.eu> | 2024-02-20 15:38:30 +0100 |
---|---|---|
committer | Soispha <soispha@vhack.eu> | 2024-02-20 15:50:32 +0100 |
commit | 1f56d6d1f4292c807b470b753fece696a2582e7e (patch) | |
tree | f0f8647699195494cc5cd89f0d80a6c9b187e66d /hm/soispha/conf/zsh/config/custom_cursor.zsh | |
parent | build(flake): Add treefmt (diff) | |
download | nixos-config-1f56d6d1f4292c807b470b753fece696a2582e7e.zip |
refactor(hm/conf/zsh/config): Rework old config scripts
Diffstat (limited to 'hm/soispha/conf/zsh/config/custom_cursor.zsh')
-rw-r--r-- | hm/soispha/conf/zsh/config/custom_cursor.zsh | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/hm/soispha/conf/zsh/config/custom_cursor.zsh b/hm/soispha/conf/zsh/config/custom_cursor.zsh new file mode 100644 index 00000000..37390c1c --- /dev/null +++ b/hm/soispha/conf/zsh/config/custom_cursor.zsh @@ -0,0 +1,42 @@ +#!/usr/bin/env zsh + +# Change cursor shape for different vi modes. +function zle-keymap-select { + if [[ ${KEYMAP} == vicmd ]] || + [[ $1 = 'block' ]]; then + echo -ne '\e[1 q' + elif [[ ${KEYMAP} == main ]] || + [[ ${KEYMAP} == viins ]] || + [[ ${KEYMAP} = '' ]] || + [[ $1 = 'beam' ]]; then + echo -ne '\e[5 q' + fi +} +zle -N zle-keymap-select + +# ci", ci', ci`, di", etc +autoload -U select-quoted +zle -N select-quoted +for m in visual viopp; do + for c in {a,i}{\',\",\`}; do + bindkey -M "$m" "$c" select-quoted + done +done + +# ci{, ci(, ci<, di{, etc +autoload -U select-bracketed +zle -N select-bracketed +for m in visual viopp; do + for c in {a,i}${(s..)^:-'()[]{}<>bB'}; do + bindkey -M $m $c select-bracketed + done +done + +zle-line-init() { + zle -K viins # initiate `vi insert` as keymap (can be removed if `bindkey -V` has been set elsewhere) + echo -ne "\e[5 q" +} +zle -N zle-line-init + +echo -ne '\e[5 q' # Use beam shape cursor on startup. +precmd() { echo -ne '\e[5 q' ;} # Use beam shape cursor for each new prompt. |