vim で shiftwidth=2 を設定しましたが、以前のインデントはすべてデフォルトの 8 のままです。以前のインデントを 8 から 2 に変更するにはどうすればよいですか?
3 に答える
でファイル全体を再インデントできますgg=G
。gg
最初の行に移動し、=
インデント (移動)G
して、最後の行に移動します。
元のインデントがハード タブ ストップを使用して達成された場合、できる 1 つのトリックは次のとおりです。ハード タブ ストップを 2 に設定します。
:set ts=2
これで、2 スペースのインデントができました (ただし、ハード タブで達成されます)。
さあ、やれ
:retab 8
これは、大まかに、ハードタブのサイズを 8 に変更する (のように:set ts=8
) ことを意味しますが、同時に、インデントの外観が変わらないように、バッファー内のすべてのタブを編集します。
そのため、バッファーはまだ 2 つのスペースにインデントされていますが、:ts
8 に戻っています。
設定した場合:expandtab
、インデントはすべてスペースになり、それ以外の場合は、8 スペースのタブとスペースの組み合わせになります。
これがあなたの状況に当てはまらない場合でも、ハードタブを使用し、スペースと別のインデントレベルを同時にretab
使用するように変換したいソースを扱うのに便利なので、知っておくとよいでしょう .
を使用している場合set expandtab
(必要に応じて)、ファイルのインデントを次のように変更できます。
:%s/^ */ /
設定は変更方法に影響しますが、それ自体がファイルを変更するわけではありません。