浏览代码

Add vi-mode plugin for vi-like editing

Tomas Kramar 13 年之前
父节点
当前提交
6c3b9daaf7
共有 1 个文件被更改,包括 22 次插入0 次删除
  1. 22 0
      plugins/vi-mode.plugin.zsh

+ 22 - 0
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