編集中のファイルの現在のインデントスタイルにVimを適合させるにはどうすればよいですか?


39

私はさまざまなJavaScriptプロジェクトに取り組んでいます。これらのプロジェクトのほとんどでは、JavaScriptファイルのインデントは2スペースなので、デフォルトのインデント幅をそれに設定しました。ただし、他のプロジェクトでは1または4になります。

現在のファイルですでに使用されているスタイルに基づいてインデントスタイルを変更するようにVimに依頼する方法はありますか?


特定のファイルタイプに対して.vimrcにそのような設定を追加しないのはなぜですか?:au BufEnter *.js :set shiftwidth=2。これはすべてのプロジェクトで機能します
-SibiCoder

1
@SibiCoder:同じファイルタイプであっても、プロジェクトごとに異なるインデントスタイルを持つことができます。(例:同じ会社に属さないプロジェクト)
-thameera

*.*単なるパターンです。ファイル名またはパスも使用できます。または、各ファイルに対して、私が与えたのと同じような自動コマンドを使用できます。現在のファイルのタブ幅を取得し、このファイルのパスに配置するようにautoコマンドに指示できます。とても簡単です。
SibiCoder

回答:


28

上記の@Undoの回答に追加します。Tim Popeにもtpope / vim-sleuthで同じことをしようとするプラグインがあります


5
私の経験では、Sleuthはdetectindentよりも少しうまく機能しているようで、ファイルシステム内の近くにある他のファイルを見て、新しいファイルの適切なインデント設定を決定しようとします。
ジェームスサン

@jamessanはそれを知りませんでした。
ドゥルーヴァサーガル

2
プラグイン推奨の回答に関するポリシーを読み、推奨プラグインを使用して問題を解決する方法について詳細を追加してください。
200_success

15

私はそれを使用していませんが、ciaranm / detectindentはあなたが探しているものかもしれません。アクティブであるようで(最終更新日は25日前)、必要な処理を実行しているようです

インデント設定を自動的に検出するためのVimプラグイン。このプラグインは、アクティブファイルで使用されている既存の設定に基づいて、 'shiftwidth'、 'expandtab'、および 'tabstop'オプションをインテリジェントに設定しようとする:DetectIndentコマンドを追加します。


このプラグインは現在開発中ではありません。(最後の更新は3年前でした。)
Mateen Ulhaq
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.