Vim7.1でChangeLogメモを編集する際、
一度ChangeLogメモファイルのバッファを閉じてから、再度開いた場合に
2回目以降に :map
$VIMRUNTIME/ftplugin/changelog.vimを見たら、
if exists(":NewChangelogEntry") != 2 map <buffer> <silent> <Leader>o <Esc>:call <SID>new_changelog_entry()<CR> command! -nargs=0 NewChangelogEntry call s:new_changelog_entry() endif
mapの部分がifブロック内に入っているせいで、2回目以降はmapが実行されていない。
mapの部分をifブロックの外側にだせば解決するのだけど、
標準で入っているものに手を加えるのはなんとなくためらわれるものがある。
というか、Vimインストールディレクトリの方はバージョン管理していないので、
Vimを使っている複数の環境それぞれで修正する必要があり、微妙。
できれば、バージョン管理下にある$HOME/vimfiles以下の修正でなんとかして、
他の環境では同期をとるだけで修正が反映されるようにしたい。
ということで、$HOME/vimfiles/after/ftplugin/changelog.vim側に
マッピングを上書きする設定を追加することに。
noremap <buffer> <silent> <Leader>o :<c-u>NewChangelogEntry<CR>
これで、複数回開いても
あと、以前の設定だと、自分の環境ではなぜか
ビジュアルベルが火を吹いてくれてたんだけど、
: