chocokanpan BLOG

2010 年 5 月 12 日

zshのvi keybindでモードを表示する

Filed under: 未分類 — タグ: , — chocokanpan @ 10:30 AM

zsh のbindkeyをviに設定した上でいざコマンドを打とうとした時、
Normal modeなのか、Insert modeなのかが分からない。
最近までは、Escキーを2,3度押してから始めていたのでコマンドを
入力するまで何回か手数を踏まないといけなかった。
さすがにまずいよね。っということで表示を出来るよう対応してみた。

examples:zlewidgets [ZshWiki]
http://zshwiki.org/home/examples/zlewidgets

Aaron Toponce : Add Vim Editing Mode To Your ZSH Prompt
http://pthree.org/2009/03/28/add-vim-editing-mode-to-your-zsh-prompt/

上記の2つのサイトを参考にして作成した。
>|shell|
function accept_line{
VIMODE=”I”
setprompt
builtin zle .accept-line
}
zle -N accept_line
bindkey -M vicmd “^M” accept_line

function zle-keymap-select {
VIMODE=”${${KEYMAP/vicmd/N}/(main|viins)/I}”
setprompt
zle reset-prompt
}
zle -N zle-keymap-select

# set prompt
function setprompt(){
if [ ! $VIMODE ]; then
VIMODE=”I”
fi
PROMPT=”%n@[${VIMODE}]%# “;;
}
||< あとは、どこかでsetpromptを呼べば使えるはず。

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress