cafegale(LeafCage備忘録)

LeafCage備忘録(はてなダイアリー)と統一しました。

ctrlp.vim起動時にステータスラインをlightline.vimのものに上書きされるのを防ぐ方法

以下のautocmdをvimrcに定義しておくと、lightline.vimがctrlp.vimのステータスラインを上書きするのを防ぐことが出来ます。

autocmd CursorMoved ControlP  let w:lightline = 0

[注意]

このautocmdはplugin/lightline.vimが読まれるより先に定義されていなければいけません。

[解説]

ctrlpは専用バッファを:noautocmdで開くため、lightline.vim

autocmd WinEnter,BufWinEnter,FileType,ColorScheme * call lightline#update()

が発動せず、ctrlpのステータスラインが描写された後に、

autocmd CursorMoved,BufUnload * call lightline#update_once()

が発動して上書きしてしまうのです。CursorMovedのときにw:lightlineを定義することで上書きを防いでいます。