2012-03-07 6 views
19

私は、各ファイルが異なるインデント規則を持つ大規模なコードベース、に取り組んでいます:タブ、4つのスペース、3つのスペース、などvimはインデントスタイル(タブとスペース)を自動的に認識できますか?

は、私は現在のタブにデフォルトと私はスペースインデントファイルに遭遇したときにset shiftwidth=N expandtab smarttabを行いますしかし、それは迷惑です。

現在のバッファがシフトごとに3つのスペースを持つインデントを使用するなど、Vimやプラグインで認識できる機能はありますか?

答えて

18

このような状況を処理しようとするさまざまなプラグインが存在します。ここで、私はvim.org

+1

探偵は、テストの私の5分で、DetectIndentよりも優れて動作しているようです。 DetectIndentは何らかの理由でシンプルで一貫したフォーマットのCファイル(サイズ2のタブがあり、DetectIndentはそれがサイズ4だと思う)でも間違った推測をします。 – Kat

2

良い質問でdetect indentのための検索で見つかったいくつかの直面していますされています同じ問題もあり、最近私はそのようなviを書いた自分のためメートルプラグイン:https://github.com/luochen1990/indent-detector.vim

それは次の機能があります。

  • は自動的にbufEnterとbufWrite に混合インデントやエコーwarnningを検出します。
  • 現在の字下げスタイルに自動的に合わせるための字下げについてのスイッチ設定。
  • 検出時間が限られているので、巨大なファイルを開くことについて心配する必要はありません。

私はそれがうまく設計されており、既知である必要が、あなたはどんな提案を持っている場合はgithubの上で問題を投稿していると思う:)

関連する問題