Vim Advent Calendar 2011 もついに21日目です!
キーマッピングは十人十色だと思いますが、他の人のキーマッピングを見るのは、いつも新しい発見がありますね。(jjで抜けるとか、同時押し等々)
なので私も一部晒してみます。
・Esc
VimでEscはいろんな方法がありますが、Escって他のアプリでも結構使いませんか?
なので、私はwinでは、keyswapなどのリマップソフトで半角/全角をESCに割り当てて使ってます。(漢字切り替えは、Shift+Spaceにしてます)
そして、最近購入したMacでは、KeyRemap4MacBookでprivate.xmlに以下を追加し、Ctrl単押しをESCに割り当ててます。
<item> <name>Control_L to Control_L</name> <appendix>(+ When you type Control_L only, send Escape)</appendix> <identifier>remap.controlL2controlL_escapeorg</identifier> <autogen>--KeyOverlaidModifier-- KeyCode::CONTROL_L, KeyCode::CONTROL_L, KeyCode::ESCAPE</autogen> </item>Ctrl単押しでEscは最初は使いづらいEscされまくりでどうかと思いましたが、今では手放せなくなりました。
winでもAutoHotkeyを使えばいけそうな気がしますがまだやってません。。
・diff時のキーマッピング
vimのdiff使ってますか?私はバリバリお世話になってます!
WinMergeもいいですが、vimのdiffも十分いけてます。
ただ、デフォルトの前後の差分へ移動するキーマッピングが使いづらいので、
shift+jとkに割り当ててます。
diff時のみ動作させるため、少しいろいろする必要があります。
nnoremap <silent> J :call NextDiff()<CR> nnoremap <silent> K :call Prevdiff()<CR> function! NextDiff() if &diff silent normal! ]c else silent normal! J endif endfunction function! Prevdiff() if &diff silent normal! [c else silent execute ":call ref#K('normal')" endif endfunctionref.vimを使っているため、Kはref.vimの関数を呼んでます。
・fからのマッピング
fっていい位置にありますよね。ただ、デフォルトの動作はそこまで頻繁に使っていないので、
leader的に使ってます。
nmap <silent> fo :<C-u>Unite -buffer-name=outline outline -no-start-insert -auto-preview<CR> nmap <silent> fl :<C-u>Unite -buffer-name=line line -start-insert<CR>fo,fl以外のf動作に支障はありませんので、他にもfaとかfeとか割り当ててしまってよさそうです。
ということでVim Advent Calendar 2011の21日目終わります。
明日は、@nishikawasasakiさんです。
参考
・keyswap
・KeyRemap4MacBook
・AutoHotkey