インデントを設定するときに使用できるオプションの説明から始めます。
tabstop (デフォルト8)-テキストにタブ文字が表示されるスペースの数。 既存のタブと新しいタブの両方に影響します。 値が変更されると、「オンザフライ」がテキストに適用されます。
softtabstop (0)-追加時にタブ文字が表示されるスペースの数。 Tabをクリックすると、期待どおりの結果が得られます(新しいタブ文字が追加されます)にもかかわらず、実際にはインデントはタブとスペースの両方を使用できます。 たとえば、 tabstopを8に設定し、 softtabstopを4に設定すると、Tabを3回押すと12スペースのインデントが追加されますが、1つのタブ文字と4つのスペースで形成されます。
shiftwidth (8)->>および<<コマンドによって追加されたスペースのインデントの幅を調整するためにデフォルトが使用されます。 softtabstopの場合のように、オプション値がtabstopに等しくない場合、インデントはタブとスペースの両方で構成できます。 オプション-smarttabを有効にすると、追加の効果があります。
smarttab (off)-このオプションが有効な場合、行の先頭で(より正確には、行の最初の非空白文字の前に)Tabを押すと、( tabstopおよびsofttabstopの値に関係なく) shiftwidthに対応するインデントが追加されます 。 Backspaceをクリックすると、1文字だけでなくインデントが削除されます。これは、 expandtabが有効な場合に非常に便利です。 思い出させてください:オプションは行の先頭のインデントにのみ影響し、他の場所ではtabstopとsofttabstopの値が使用されます。
expandtab (off)-挿入モードでは、タブ文字を適切な数のスペースに置き換えます。 また、>>および<<コマンドによって追加されるインデントにも影響します。
習得した知識を備えているため、必要なインデント動作を非常に簡単に構成できます。 開発者の間で一般的な慣行:タブではなくスペース、インデント幅-4スペース。 この場合のセットアップは次のようになります。
set tabstop=4
set shiftwidth=4
set smarttab
set expandtab
デザートについては、開発用のエディターとしてVIMを使用するユーザー向けに、2つの人生を変えるオプションの説明を残しました。
autoindent (off)-新しい行を追加するときに、現在の行からインデントをコピーします。
smartindent (off) -autoindentと同じことを行い、「正しい」場所で自動的にインデントします。 特に、インデントは、{で終わる行の後、a}で終わる行の前に配置され、行の最初に続く場合は#の前に削除されます。 (詳細は「smartindent」ヘルプ)。
実際、それがすべてです。
インデントに関する私の構成ファイルは次のとおりです。
set tabstop=4
set shiftwidth=4
set smarttab
set expandtab
set smartindent
説明や追加に感謝します。