現在取り組んでいるプロジェクトがあり、コーディング標準では2つのスペースインデントを使用しています。ただし、他のプロジェクトでは、4つのスペースインデントを使用します。
特定のディレクトリ内のすべてのファイルに2つのスペースのタブストップが必要であることをvimに伝える簡単な方法はありますか?
現在取り組んでいるプロジェクトがあり、コーディング標準では2つのスペースインデントを使用しています。ただし、他のプロジェクトでは、4つのスペースインデントを使用します。
特定のディレクトリ内のすべてのファイルに2つのスペースのタブストップが必要であることをvimに伝える簡単な方法はありますか?
ディレクトリに一致するを使用し、autocmd
必要なオプションを設定します。
au BufRead,BufNewFile,BufEnter /path/to/dir/* setlocal ts=2 sts=2 sw=2
これは、サブディレクトリ内のファイルにも適用されます。
Ingo Karkatが指摘しているように、このようなコマンドは、バッファーに固有setlocal
のものではなく、を使用する必要があります。set
由緒あるTimPopeは、現在のファイルで使用されているものに基づいて(または、信じられないほど、新しいバッファーの場合は近くのファイルに基づいて)シフト幅とタブストップを(他のバッファーオプションの中でも)自動的に決定するプラグイン呼び出しSleuthをリリースしました。
これらのプロジェクトディレクトリの例外の中央構成について心配する必要がない場合、:autocmd
NikitaKouevdaのソリューションはシンプルで効果的です。一方、特定の構成をプロジェクトとともに保存する場合(および、これをモードラインを介してすべてのファイルに埋め込みたくない場合)、次の2つのオプションがあります。
常にプロジェクトのルートディレクトリからVimを起動する場合は、組み込みの
:set exrc
.vimrc
現在のディレクトリからファイルを読み取ることができます。:set ts=2 sw=2 et
そこにコマンドを配置できます。
それ以外の場合は、プラグインの助けが必要です。vim.orgにはいくつかあります。localrcプラグインをお勧めします。
少し前に、私はこれらのニーズにぴったりのプラグインを作成しました:Vimprj。これは、さまざまなプロジェクトのオプションを管理するためのプラグインです。
一人の男もそれについて素敵な記事を書いた。
.vimprj
簡単に言うと、プロジェクトのルート(または.vimprj
いくつかのファイルを含むディレクトリ)にファイルを作成する必要があります。.vim
このプロジェクトに切り替えるたびに、このファイルまたはディレクトリ.vimprj
がソースになります。
詳細についてはプラグインのページをお読みください。このプラグインに問題がある場合は、お気軽にお問い合わせください。
embear /vim-localvimrchttps://github.com/embear/vim-localvimrc はうまく機能しました。
.lvimrc
以下を含むファイルを作成します。
setlocal noexpandtab
setlocal shiftwidth=8
setlocal tabstop=8
を含む子ディレクトリ内のすべてのファイルについて、 myのデフォルトautocmd FileType
構成よりも優れています。.vimrc
.lvimrc
プラグイン.lvimrc
は、親ディレクトリで見つかったすべてのものをルート側から最初にソースするため、深い.lvimrc
ほど優先順位が高くなります。
EditorConfig https://github.com/editorconfig/editorconfig-vimは、エディターに依存しない設定(およびVimの実装)が含まれているため、誰もが使用する必要のある設定のソースツリーを制御する場合に最適なオプションです。