VIMエディタでshiftwidthは何をするのか

VIMエディタでshiftwidthは何をするのか

Google で shiftwidth オプションについて次のように読みました: インデントのために挿入されるスペース文字の数を変更するには、「shiftwidth」オプションを使用します。

わかりました。でも、それはもっと正確には何ですか? 実際に何が起こるかを確認するにはどうすればいいですか? 新しい C ファイルを作成し、IF 構成を追加しましたが、識別中に何も起こりません。

if (a > 0) {ここでは何も起こりません}

ありがとう!

答え1

shiftwidth=2 に設定したとします

まず、ファイルが.c拡張子であることを確認する必要があります。

$ vim foo.c

新しいファイルを作成するか、.c 拡張子でファイルを保存します。

今入力してください

if (a > 0) {

Enter キーを押します。次の行は自動的にインデントされます。

if (a > 0) {
  foo();

対応する '}' を入力すると、vim はそれを適切にインデントします。

if (a > 0) {
  foo();
}

これを読むドキュメンテーションより明確にするため。

答え2

お勧めしますこのスクリーンキャストによるドリュー・ニールここでは、tabstop、softtabstop、shiftwidth、expandtab がどのように連携して動作するかを説明します。

答え3

shiftwidth のもう 1 つの重要な用途は、コードに適切なインデントを提供することです。.yaml ファイルを使用していて、数行のコードをまとめてインデントしたいとします。

シフト幅を次のように設定します

esc:シフト幅を2に設定

キーでインデントしたいものを選択します

シフト+v

さて、コードを右にインデントするには、

シフト + >

そして、コードを左にインデントするには、

シフト+<

関連情報