どこでこんな設定を入れてしまったのか、ある日気が付くと vimrcを再読み込みするとシンタックスが無効化される。
どうしてなんだろうなぁ、と調査してたらset filetype=markdown
こんなものが記述してあった。
初回、読み込み時は普通にfiletypeが vimとして自動判定されるのに、再読み込みで強制的に markdown としてシンタックスが適用されるから、無効化したように見えたというオチだった。
昔の自分としては、vimの初回起動時の新規バッファとして、保存やset filetype=
を打たなくても、filetypeを markdown として設定させたかったのだろう。
vimrc基礎文法最速マスター - 永遠に未完成を見ると、以下のとおりオプションを変数として扱えるとある。
& を接頭子にすることで、Vimスクリプト内でオプションを変数のように扱えます。
折角なので、このように修正してみた。
" デフォルトのfiletype
if len(&filetype) == 0
set filetype=markdown
endif
これで初回起動時の新規バッファ だけ は markdown として設定される。その後の新規バッファではfiletypeは空のままというオチ。
それでは意味ないと思って、前回の続きみたいな形でバッファに入る時にfiletypeが設定されているか判定して、未設定なら設定するという形にした。
function! s:NoneFileTypeSetMarkdown()
if len(&filetype) == 0
set filetype=markdown
endif
endfunction
autocmd BufEnter * call s:NoneFileTypeSetMarkdown()