about summary refs log tree commit diff
path: root/.config/zsh/vi-mode.zsh
diff options
context:
space:
mode:
Diffstat (limited to '.config/zsh/vi-mode.zsh')
-rw-r--r--.config/zsh/vi-mode.zsh18
1 files changed, 18 insertions, 0 deletions
diff --git a/.config/zsh/vi-mode.zsh b/.config/zsh/vi-mode.zsh
new file mode 100644
index 0000000..f0529f9
--- /dev/null
+++ b/.config/zsh/vi-mode.zsh
@@ -0,0 +1,18 @@
+# vi mode
+bindkey -v
+# make backspace and delete behave like vim
+bindkey -M viins '^?' backward-delete-char
+bindkey -M viins '^H' backward-delete-char
+bindkey -M viins '^[[3~' delete-char
+# display block cursor in normal mode
+function zle-keymap-select zle-line-init zle-line-finish {
+	case $KEYMAP in
+		vicmd)      echo -ne "\e[2 q";;
+		viins|main) echo -ne "\e[6 q";;
+	esac
+	zle reset-prompt
+	zle -R
+}
+zle -N zle-keymap-select
+zle -N zle-line-init
+zle -N zle-line-finish