summaryrefslogtreecommitdiff
path: root/.config/zsh/plugin
diff options
context:
space:
mode:
authorPaul Iannetta <paul.iannetta@inria.fr>2018-11-19 00:51:01 +0100
committerPaul Iannetta <paul.iannetta@inria.fr>2018-11-19 00:51:01 +0100
commitb209dd98527fd357e716d44ec4adb430504eae56 (patch)
tree4269768238d352dea0f2cd079c27379418d502c3 /.config/zsh/plugin
parent52967fde6b3424372a5d4790e6c5c21dc3096913 (diff)
zsh dot files
Diffstat (limited to '.config/zsh/plugin')
-rw-r--r--.config/zsh/plugin/vi-mode.plugin36
1 files changed, 36 insertions, 0 deletions
diff --git a/.config/zsh/plugin/vi-mode.plugin b/.config/zsh/plugin/vi-mode.plugin
new file mode 100644
index 0000000..8747a7e
--- /dev/null
+++ b/.config/zsh/plugin/vi-mode.plugin
@@ -0,0 +1,36 @@
+# Updates editor information when the keymap changes.
+function zle-keymap-select() {
+ zle reset-prompt
+ zle -R
+}
+
+# Ensure that the prompt is redrawn when the terminal size changes.
+TRAPWINCH() {
+ zle && { zle -R; zle reset-prompt }
+}
+
+zle -N zle-keymap-select
+zle -N edit-command-line
+
+bindkey -v
+
+# allow v to edit the command line (standard behaviour)
+autoload -Uz edit-command-line
+bindkey -M vicmd 'v' edit-command-line
+
+# allow ctrl-p, ctrl-n for navigate history (standard behaviour)
+bindkey '^P' history-beginning-search-backward
+bindkey '^N' history-beginning-search-forward
+bindkey '^K' kill-whole-line
+
+# allow ctrl-h, ctrl-w, ctrl-? for char and word deletion (standard behaviour)
+bindkey '^?' backward-delete-char
+bindkey '^h' backward-delete-char
+bindkey '^w' backward-kill-word
+
+# allow ctrl-r to perform backward search in history
+bindkey '^r' history-incremental-search-backward
+
+# allow ctrl-a and ctrl-e to move to beginning/end of line
+bindkey '^a' beginning-of-line
+bindkey '^e' end-of-line