ファイル別の key-map設定で失敗した話
本記事は、Vim Advent Calendar 2012の 309日目の記事になります。
308日目は @manga_osyo さんの「[vim]unite.vim の action について理解する」でした。
今回は、私が キー配置の設定で失敗した話です。
色んな方の .vimrc 見てみたのですが、同じような設定方法をしている方も
いてどうしているんだろうなって気になりました。
失敗してしまった設定
- help において、「q」で閉じる
autocmd MyVimrc FileType help nnoremap q :q<CR>
とこんな風に .vimrcに書いていました。
これが、失敗とも知らずに・・・
どんな場面で気づいたか
一度、Vim/gVim 立ち上げるとほとんど Vim内で作業しているのですが、
どうも FileTypeが helpで無くても「q」で閉じてしまうことが発生しました。
- .vimrcを見直そうとして開く
:e ~/.vimrc
- おっと。これどういう意味だっけ(helpを見る)
:help key-map
- ふむふむ。なるほど!(help画面と閉じる)
q (.vimrc)
- あれ? .vimrcでも「q」で閉じてしまった
(´・ω・`)
なぜ???(調査)
- .vimrcを見直そう
:e ~/.vimrc :nnoremap q なにも見つかりません
- おっと。これどういう意味だっけ
:help key-map :nnoremap q n q *@:q<CR>
- ふむふむ。なるほど!(help画面と閉じる)
q (.vimrc) :nnoremap q n q *@:q<CR>
FileTypeが vim でも「q」のキーマップが有効になってる!!!
ということです。
知っている人からすれば当たり前かもしれませんが、
Globalでキーマップが設定されていたということです。
私がやるべき設定
- help において、「q」で閉じる
autocmd MyVimrc FileType help nnoremap <buffer> q :q<CR>
と、このようにきちんと
<buffer>
をつけて、バッファ内でのみ有効にするすべきだった(;´∀`) 反省。
次回は @manga_osyo さんです。