1. ホーム

[解決済み】Vimのタブサイズを変更する方法は?

2022-04-15 09:47:40

質問

CSSでセレクタを追加するたびに Enter を使用してプロパティを定義すると、このようになります。

#selector {
        property: value;
}

(8スペースタブ)

Vimをどのように設定すれば、このようになりますか。

#selector {
    property: value;
}

(4スペースタブ)

解決方法は?

zoulの回答を拡大解釈する。

特定のファイルタイプを編集するときに特定の設定を使用するように Vim を設定したい場合、オートコマンドを使用することになります。

autocmd Filetype css setlocal tabstop=4

これにより、タブが4つのスペースとして表示されるようになります。設定方法 expandtab は、Vim が実際にスペースを挿入するようになります(その数は tabstop を使用するとよいでしょう。 softtabstop を使用すると、バックスペースが正しく機能します (つまり、常に 1 文字ずつ削除するのではなく、タブが使用される場合にインデントが減少します)。

どのように設定すればよいかを十分に理解した上で決定するためには、Vim のドキュメントにある tabstop , shiftwidth , softtabstopexpandtab . 最も興味深いのは、以下の部分です。 expandtab ( :help 'expandtab ):

Vimでタブを使うには、主に4つの方法があります。

  1. tabstop」を常に8にして、「softtabstop」と「shiftwidth」を4(または3などお好みで)に設定し、「noexpandtab」を使用します。 Vim はタブとスペースを混在させますが、タイプすると 4 文字 (または 3 文字) ごとにタブが表示されるような動作をします。

  2. tabstop' と 'shiftwidth' を好きなように設定し、'expandtab' を使ってください。 こうすることで、常にスペースを挿入することができます。 tabstop」を変更しても、書式がめちゃくちゃになることはありません。

  3. tabstop' と 'shiftwidth' を好きなように設定し、ファイルを再び編集するときに |modeline| を使ってこれらの値を設定します。 Vim を使ってファイルを編集しているときだけ機能します。

  4. 常に 'tabstop' と 'shiftwidth' を同じ値に設定し、'noexpandtab' を設定する。 これは、人々が使用するどのようなタブストップの設定に対しても(最初のインデントに対してのみ)機能するはずです。 しかし、この方法では、最初の空白以外のタブはスペースとして挿入されるようにするのがよいでしょう。 そうしないと、'tabstop' を変更したときに、整列されたコメントがおかしくなってしまいます。