タブVsに関してはVimはとても親切です。スペース設定。私が理解しているように、tabstop
設定はタブ文字の幅を示しています。このshiftwidth
設定は、<<および>>コマンドを使用するときにインクリメント/デクリメントする列の数を指定しますが、このsofttabstop
設定Tabは、挿入モードでキーを押したときに挿入される空白の量に影響します。場合はexpandtab
、Tabキーを挿入する上でsofttabstop
空白文字の数。一方、expandtab
スイッチをオフにした状態でTabキーを押すと、に一致するタブ+スペース文字の最小数が挿入されますsofttabstop
。(間違っている場合は訂正してください。)
この最後のポイントは私に不思議に思います:あなたが望まない実際的なケースはありますshiftwidth == tabstop && tabstop == softtabstop
か?思いつかない。私の知る限り、これら3つすべてを1つの割り当てで同じ値に設定できれば最も便利です。例:呼び出し:
:set stab=4
これは、実行するのと同じです。
:set tabstop=4 softtabstop=4 shiftwidth=4
誰かがこれをどのように行うことができるかを提案できますか?
更新
これまでの回答のおかげで、あまりにも多くのPHP、ホッブズとkaiser.se。それぞれに個別に返信するのではなく、ここで質問を更新しています。
ExpandtabがオフになっているSofttabstop
上記で、expandtabをオフにした状態で、Tabキーを押すと、に一致するタブ+スペース文字の最小数が挿入されることを説明しましたsofttabstop
。私はそれを支持しますが、私が何を意味したのかを説明する必要があると思います。いくつかの例を挙げて、そうしようと思います。フォローするには、:set list
タブ文字が表示されるように実行します。
tabstop=4 softtabstop=2 shiftwidth=4 noexpandtab
挿入モードでは、Tabキーを押すと2つのスペース文字が挿入されます。Tabキーをもう一度押すと、さらに2つのスペース文字(合計4つのスペース文字)を挿入する代わりに、前の2つのスペースが1つのタブ文字に置き換えられます。タブストップは4に設定されているため、1つのタブ文字の幅は4スペースと同じです。
tabstop=4 softtabstop=6 shiftwidth=4 noexpandtab
挿入モードでは、タブキーを押すと、1つのタブ文字と2つのスペースが挿入されます。タブ文字の幅は4であるため、合計の幅は6であり、これは3文字を使用して実現されます。タブキーをもう一度押すと、2つのタブ文字が挿入され、以前に挿入された2つのスペースが削除されます。全幅は12文字で、これは3文字を使用して実現されます。
これらの例の両方で、Vimはsofttabstopに一致するタブ+スペース文字の可能な最小数を挿入します。
エキスパンドタブをオフにして作業している場合、ソフトタブストップをタブストップとは異なる値に設定することで実現できる、よりきめ細かい制御が必要だとは思えません。それはまだ私が設定できるようにするために有用であろうtabstop
、softtabstop
とshiftwidth
1つのコマンドで同じ値に設定します。
expandtabはsofttabstopを冗長にしますか?
tabstop=4 softtabstop=0 shiftwidth=4 expandtab
挿入モードでは、Tabキーを押すと4つのスペースが挿入されます。Deleteキーを押すと、1つのスペースが削除されます。そのため、誤ってTabキーを押した場合は、4回バックスペースする必要があります。
tabstop=4 softtabstop=4 shiftwidth=4 expandtab
挿入モードでは、Tabキーを押すと4つのスペースが挿入されます。バックスペースキーを押すと、4つのスペースが削除されます。
expandtab
スイッチをオンにして作業している場合は、削除キーを使用して、タブキーが挿入するのと同じ量の空白を削除することをお勧めします。したがって、この場合には、あまりにも、私は同じ値を割り当てられることは有用であろうと感じtabstop
、softtabstop
そしてshiftwidth
同時に。
ショートカットはまだ役に立ちます
Vimが非常に多くの柔軟性を提供することは素晴らしいことですが、私はそれを必要としているとは思えません。タブの幅と、それが「ハード」タブ(タブ文字を使用)か「ソフト」タブ(スペースで構成)かを選択できるようにしたいだけです。ハードタブとソフトタブの切り替えは簡単ですが(:set expandtab!
)、3つの異なるパラメーターをいじる必要がなく、タブの幅を設定する方が簡単だったらいいのにと思います。
ですから、私の提案したようなものについての提案は、:set stab=4
まだ私には良いと思います。