読者です 読者をやめる 読者になる 読者になる

vimrc に起動時のみに実行されるコードを書く

以前書いた記事にもちらっと出てきたけど、私は g:loaded_vimrc って変数を用意してそれで初回読み込みかを判定していた。
しかし、それだけが目的ならその必要はなかったようだ。
Vim には vim_starting と言う feature があって、これは VimEnter イベントが発生するまでは 1 でそれ以降(VimEnter 発生中も含む)は 0 になる。つまりこれをチェックすれば起動時のみ実行したい部分を切り分けられる。

if has('vim_starting')
  call s:vimrc_local(getcwd(), '.init.vimrc')
endif

(s:vimrc_local() の引数が元記事から変わってるけど気にしてはいけない)
いやーこんな便利機能あったんだね。私の使い方だとこれで十分だったので g:loaded_vimrc は廃止しましたとさ。