複数のファイルタイプに単一のftpluginを使用する


10

私はftpluginを&runtimepath/ftplugin/c.vim使用して、cファイルのすべての優先オプションを設定しています。ただし、cppファイルにも同じ設定を使用したいと思います。設定をコピーするだけでいいのですが、それは冗長なようです。複数のファイルタイプのftpluginをロードする方法はありますか?

回答:


10

デフォルトのftplugin(/usr/share/vim/vim74/ftplugin/cpp.vim私のシステム上)はすでにこれを実行しているはずです。

" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
  finish
endif

" Behaves just like C
runtime! ftplugin/c.vim ftplugin/c_*.vim ftplugin/c/*.vim

runtimeに関連している必要がありますruntimepath

{file}スペースで区切って、複数の引数を指定できます。それぞれ{file}がの最初のディレクトリで検索され'runtimepath'、次に2番目のディレクトリで検索されます。

私が作成した場合~/.vim/ftplugin/c.vim、これは何もせずにC ++ファイルに対しても実行されます!

Vimバージョンにこのファイルがない場合は、次~/.vim/ftplugin/cpp.vimruntime!ステートメントを使用して新しいファイルを作成できます。


または、UNIX-yシステムを使用している場合は、シンボリックリンクを使用できます。

$ ln -s ~/.vim/ftplugin/c.vim ~/.vim/ftplugin/cpp.vim

ああ、気づかなかった!良い観察。他のファイルタイプに必要な場合は、ランタイムソリューションを使用します。
EvergreenTree

1

cpp.vim内に次のように記述します。

source <sfile>:h/c.vim

<sfile>現在のソースファイルに展開され、ファイル:hの先頭を意味します。


何もやることがない。Martinが説明したように、C ftpluginsは自動的にC ++バッファーのソースになります
Luc Hermitte

他のリーダーの場合、たとえば、.scssを.cssなどと同じように処理する
run_the_race

次に、非常に具体的なファイルであるIMOをロードする場合を除いて:runtime! ftplugin/css*.vim ftplugin/css/*.vim、より良いソリューションになります。
Luc Hermitte
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.