現在の設定では 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'