1. ホーム
  2. vim

[解決済み] タブを4スペースに再定義

2022-03-19 18:52:02

質問

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

どのように解決するのですか?

それはあなたが何を意味するかに依存します。ファイル内の実際のタブ文字を 現れる それとも、quot;tab" というのは、実際には インデント この場合、quot;tab" を入力するたびに、文字通り4つのスペース文字がファイルに含まれることになるのでしょうか?

回答に応じて、次のいずれかのセットを使用します。 の設定でうまくいくはずです。

  • 4スペースに表示されるタブ文字について :

    set tabstop=4
    
    

    ソースコードに実際のタブ文字を使用する場合、おそらくこれらの設定も必要でしょう (これらは実際にはデフォルトですが、防御のために設定することもできます)。

    set softtabstop=0 noexpandtab
    
    

    最後に、1つのタブに対応するインデントが必要な場合も、次のようにします。

    set shiftwidth=4
    
    
  • スペース4文字で構成されるインデントの場合 が、タブキーで入力された場合。

    set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab
    
    

上記の設定を永続させるには 以下の行を vimrc .

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

<ブロッククオート

tabstop

ハードタブストップの幅をスペースで表し、実際のタブ文字の(最大)幅に相当する。

shiftwidth

インデントの大きさを指定します。これもスペースで測りますので、もしあなたのコードベースがタブ文字でインデントするのであれば、次のようにします。 shiftwidth は、タブ文字の数× tabstop . などでも使用されます。 = , >< コマンドを使用します。

softtabstop

以外の0以外の値を設定します。 tabstop は、タブキー(挿入モード時)を にスペース(場合によってはタブも)を組み合わせて挿入します。 シミュレート この幅でタブストップ

expandtab

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

smarttab

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

これらの詳細については、以下を参照してください。 :help 'optionname' を vim で使用する場合(例. :help 'tabstop' )