1. ホーム
  2. vim

[解決済み] Vim: ディレクトリ内のファイルに設定を適用する

2022-11-07 21:04:07

質問

カレントディレクトリ以下のすべてのファイルに対して Vim の設定を行うにはどうしたらよいでしょうか。

理想的な解決策は、Vim が ~/.vimrc を検索する前に、カレントディレクトリの .vimrc を検索して読み、そこにある設定をツリー全体に適用することでしょう。

私は プラグイン を見たことがありますが、これはプラグインをインストールする必要があるため、適用される設定が透過的でないことを意味します。 対照的に、modeline はユーザーの vimrc や特定の vim の起動に関係なく、modeline の設定がそのファイルに対して適用されるため、透過的です。

私が試したものは

  • 作業ディレクトリに .vimrc を配置する。
  • :so vimrc をモデリングに入れる。

セキュリティ上の理由で両方が機能しないのでしょう。 私は vimrc のフルパワーは必要ありません。modeline によって受け入れられる設定に束縛されれば十分です。 私の目標は、プロジェクトでコーディング標準を採用することを、Vimmer にとってより簡単にすることです。

どのように解決するのですか?

私が提唱しているのは プラグインの方法 . いくつかの理由からです。

  • モデルラインは特に制限されています: 変数 (他の (ft) プラグインを調整するもの、たとえば "for-snippet のブレースは改行であるべき ?") を設定したり、そこから関数を呼び出すことができません (私はコーディングスタンダードに限定していません、現在のディレクトリに応じて使用する makefile も設定しています)。
  • DRY : モデリングでは、設定をファイルごとに繰り返す必要があり、設定する項目やチューニングを変更する項目が多すぎると、すぐにメンテナンスが困難になりますし、さらに、そのために テンプレートエクスパンダープラグイン を使用する必要があります (プロジェクトに複数の Vimmers がいる場合は考慮する必要があります)。
  • すべての人が開発に vim を使っているわけではありません。他の人のエディタ設定に煩わされたくないのに、なぜ私が他の人のエディタに寄生しなければならないのでしょうか?
  • 同じプラグインをインストールするように vimers に頼む方が、.vimrc に同じ行をコピーペーストして維持するように頼むより簡単です。
  • 設定は他のプロジェクトファイル (cvs/svn/git/whatever) と共に保存できる。
  • プロジェクトごとに設定ファイルを持つのは本当に簡単です。プラグインを使用して、私はプロジェクト全体のコーディング標準のためのグローバル設定ファイルと、各サブプロジェクト用の特定の設定ファイル(どの makefile を使用するか、どの実行ファイルを呼び出すか、...)があります。

ところで sthの解決策 は単一の設定ファイルをソースとするために使用することができます。これはプラグインのアプローチに非常に似ていますが、.vimrc にグローバルでないオプションを寄生させなければならないことと、複数の設定ファイルを簡単に共有することをサポートしていない点が異なります。