web-dev-qa-db-ja.com

Vimでタブサイズを変更するにはどうすればよいですか?

CSSにセレクターを追加し、Enterを押してプロパティを定義するたびに、次のようになります。

#selector {
        property: value;
}

(8スペースタブ)

Vimを次のように設定するにはどうすればよいですか:

#selector {
    property: value;
}

(4スペースタブ)

125
alexchenco

Zoulの答えを拡張する:

特定のファイルタイプを編集するときに特定の設定を使用するようにVimをセットアップする場合は、オートコマンドを使用する必要があります。

autocmd Filetype css setlocal tabstop=4

これにより、タブが4つのスペースとして表示されるようになります。 expandtabを設定すると、tabを押したときにVimが実際にスペース(tabstopで制御されているスペースの数)を挿入します。 softtabstopを使用してバックスペースを適切に機能させることができます(つまり、一度に1文字ずつ削除するのではなく、タブを使用した場合のインデントを減らします)。

設定方法について十分な知識のある決定を下すには、tabstopshiftwidthsofttabstop、およびexpandtabのVimドキュメントを読む必要があります。最も興味深いビットは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」が変更されたときに整列されたコメントが間違ってしまいます。

78
Michał Marczyk
:set tabstop=4
:set shiftwidth=4
:set expandtab

これにより、タブ文字の代わりに4つのスペースが挿入されます。スペースはもう少し「安定」しています。つまり、スペースでインデントされたテキストは、ブラウザーや他のアプリケーションでも同じように表示されます。

172
zoul

1つのセッションに変更を加えるには、次のコマンドを使用します。

:set tabstop=4

変更を永続的にするには、~/.vimrcまたは~/.vim/vimrcに追加します。

set tabstop=4

これは、cssだけでなく、すべてのファイルに影響します。 cssファイルのみに影響を与えるには:

autocmd Filetype css setlocal tabstop=4

Michał's answer に記載されているとおり。

96
Keith

このページの回答のいくつかは、説明されている問題に対する「単一使用」の修正です。つまり、次回vimでドキュメントを開くと、以前のタブ設定に戻ります。

誰かがタブの設定を永続的に変更することに興味がある場合:

  • .vimrcを見つける/開く- 手順はこちら
  • 次の行を追加します:( 詳細はこちら

     set tabstop=4
     set shiftwidth=4
     set expandtab
    
  • 次に、ファイルを保存してテストします

32

サイズを頻繁に変更する必要があり、これを特定のファイルタイプにバインドしたくない場合は、.vimrcファイルに定義済みのコマンドを設定して、設定をすばやく切り替えることができます。

nmap <leader>t :set expandtab tabstop=4 shiftwidth=4 softtabstop=4<CR>
nmap <leader>m :set expandtab tabstop=2 shiftwidth=2 softtabstop=2<CR>

これにより、2つの異なるサイズのセットがキー\ tおよび\ mにマップされます。これを任意のキーに再バインドできます。

6
Jens

Vimへのワンライナーとして:

:set tabstop=4 shiftwidth=4 expandtab

永続的なセットアップの場合、これらの行を〜/ .vimrcに追加します。

set tabstop=4
set shiftwidth=4
set expandtab
0
oz19