タブを4つのスペースに再定義する 質問する

タブを4つのスペースに再定義する 質問する

現在の設定では 8 つのスペースが想定されていますが、これを再定義するにはどうすればよいでしょうか?

ベストアンサー1

それはあなたが何を意味しているかによります。つまり:

  • ファイル内のタブ文字を4 文字セルの幅で表示したいですか?
  • tabキーに4つのスペース文字からなるインデントを生成させたい

必要な動作に応じて、次のいずれかの設定セットが機能するはずです。

ファイル内のタブ文字を 4 文字セル幅で表示したい場合は、次のようにします。

set tabstop=4

コードで実際のタブ文字を使用する必要がある場合、これらの設定により、意図しないスペースの挿入を防止できます (これらはデフォルトですが、防御的に設定することもできます)。

set softtabstop=0 noexpandtab

インデントにタブも使用したい場合は、shiftwidth次のように設定する必要がありますtabstop

set shiftwidth=4

これらの設定を永続的にするには、vimrc

tabキーを押して 4 つのスペース文字でインデントする場合:

まず、vim に 4 スペースのインデントを使用するように指示し、タブ文字を挿入するのではなく、インデントにタブ キーをインテリジェントに使用するように指示します (行の先頭の場合)。

set shiftwidth=4 smarttab

vim でタブ文字を使用せず、スペース文字のみを使用するようにしたい場合は、次のようにします。

set expandtab

最後に、タブ文字が適切なインデントとして偽装される可能性を減らすために、タブ ストップをインデントの幅とは異なる値に設定することをお勧めします。

set tabstop=8 softtabstop=0

これらの設定を永続的にするには、vimrc

詳細情報

調整が必要な場合、またはこれらのオプションの意味をすべて理解したい場合のために、各オプションの意味を以下に説明します。

tabstop

「スペース」で測定されたハード タブストップの幅。実質的には実際のタブ文字の (最大) 幅です。

shiftwidth

「インデント」のサイズ。これもスペースで測定されるため、コード ベースでタブ文字を使用してインデントしている場合は、shiftwidthタブ文字の数と を掛け合わせます。これは、、、およびコマンドtabstopなどでも使用されます=><

softtabstop

これを 0 以外の値に設定すると、tabstopタブ キー (挿入モード) を押すと、この幅でタブ ストップをシミュレートするためにスペース (および場合によってはタブ) の組み合わせが挿入されます。

expandtab

これを有効にすると、タブ キー (挿入モード) でタブ文字ではなくスペースが挿入されるようになります。これはコマンドの動作にも影響しますretab

smarttab

これを有効にすると、カーソルが行の先頭にある場合(つまり、先行する文字が空白のみの場合)、タブ キー(挿入モード)を押すと、次のタブストップの次のインデントに移動するためにスペースまたはタブが挿入されます。

これらの詳細については、vimを参照してください(例:):help 'optionname':help 'tabstop'

おすすめ記事