特定のファイルタイプの新しいファイルを作成するたびに、いくつかのvimコマンドを実行したいと思います.autocommandイベントの組み合わせのようなものBufNewFile
ですFileType
。
ファイル拡張子に基づいてファイルタイプを設定するようにBufNewFile
filetype.vim に自動コマンドをセットアップしましたが、すべて同じファイルタイプに対応する複数の拡張子があります。特定のファイル タイプに対応するファイル拡張子に関する情報をこの 1 か所だけにカプセル化し、そのファイル タイプだけに基づいて他の自動コマンドを実行したいと考えています。ただし、FileType
既存のファイルを編集するときではなく、新しいファイルに対してコマンドを実行したいだけなので、イベントだけを使用することはできません。
たとえば、filetype.vim には次のようなものがあります。
au BufRead,BufNewFile *.cir setfiletype spice
au BufRead,BufNewFile *.sp setfiletype spice
au BufRead,BufNewFile *.spice setfiletype spice
BufNewFile
次のように、このファイルタイプの ftplugin ファイルに自動コマンドを追加できるのではないかと考えました。
echo "Spice file."
au BufNewFile <buffer> echo "New spice file!"
しかし、「test.cir」などの新しいファイルを作成すると、自動コマンドが実行されません。ftplugin ファイル内の他のコマンドを実行します (たとえば、"Spice file." echo を取得します) が、autocommand は実行しません。
あるいは、vimscript にファイルが新しいかどうかを判別できる方法があれば、ファイルが新しいかどうかを条件として、ftplugin で直接コマンドを実行できます。