From 6c3b9daaf7cd1bf387d46e865f316c6815dc14d2 Mon Sep 17 00:00:00 2001
From: Tomas Kramar <kramar.tomas@gmail.com>
Date: Sun, 26 Sep 2010 22:25:31 +0200
Subject: Add vi-mode plugin for vi-like editing

---
 plugins/vi-mode.plugin.zsh | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)
 create mode 100644 plugins/vi-mode.plugin.zsh

(limited to 'plugins/vi-mode.plugin.zsh')

diff --git a/plugins/vi-mode.plugin.zsh b/plugins/vi-mode.plugin.zsh
new file mode 100644
index 000000000..c47ab7211
--- /dev/null
+++ b/plugins/vi-mode.plugin.zsh
@@ -0,0 +1,22 @@
+function zle-line-init zle-keymap-select {
+  zle reset-prompt
+}
+
+zle -N zle-line-init
+zle -N zle-keymap-select
+
+bindkey -v
+
+# if mode indicator wasn't setup by theme, define default
+if [[ "$MODE_INDICATOR" == "" ]]; then
+  MODE_INDICATOR="%{$fg_bold[red]%}<%{$fg[red]%}<<%{$reset_color%}"
+fi
+
+function vi_mode_prompt_info() {
+  echo "${${KEYMAP/vicmd/$MODE_INDICATOR}/(main|viins)/}"
+}
+
+# define right prompt, if it wasn't defined by a theme
+if [[ "$RPS1" == "" && "$RPROMPT" == "" ]]; then
+  RPS1='$(vi_mode_prompt_info)'
+fi
-- 
cgit v1.2.3-70-g09d2