私の現在の設定は8つのスペースを想定しています。再定義する方法
それはあなたが何を意味するのかに依存します。ファイルの実際のタブ文字を 表示される 4スペースの幅にしますか、それともタブキーを押すことによって生成される インデント を意味するのですか。入力する各「タブ」に(最大)4つのスペース文字がありますか?
あなたの答えに応じて、以下の設定のセットの1つがあなたのために働くはずです:
4文字幅のタブ文字の場合 :
set tabstop=4
ソースコードで実際のタブ文字を使用している場合は、おそらくこれらの設定も必要です(これらは実際にはデフォルトですが、防御的に設定することをお勧めします)。
set softtabstop=0 noexpandtab
最後に、インデントを単一のタブに対応させる場合は、次のものも使用する必要があります。
set shiftwidth=4
4つのスペース文字からなるインデント がタブキーで入力された場合
set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab
上記の設定を恒久的なものにするには、これらの行を vimrc に追加してください。
調整が必要な場合、またはこれらのオプションがすべて何を意味するのかを簡単に理解したい場合は、以下に各オプションの意味の内訳を示します。
tabstop
「スペース」で測定されたハードタブストップの幅 - 実際のタブ文字の(最大)幅。
shiftwidth
「インデント」のサイズスペースでも測定されるので、コードベースがタブ文字でインデントする場合は、
shiftwidth
をタブ文字の数にtabstop
を乗じたものにします。これは=
、>
および<
コマンドのようなものによっても使用されます。
softtabstop
これを
tabstop
以外のゼロ以外の値に設定すると、(挿入モードでは)タブキーはスペース(および場合によってはタブ)の組み合わせを シミュレート この幅のタブ位置に挿入します。
expandtab
これを有効にすると、(挿入モードの)タブキーはタブ文字の代わりにスペースを挿入します。これは
retab
コマンドの動作にも影響します。
smarttab
これを有効にすると、カーソルが行の先頭にあるときに(挿入モードで)タブキーがスペースまたはタブを挿入して、次のタブストップの次のインデントに移動します(つまり、先行する文字だけが空白です)。
これらの詳細については、vimの:help 'optionname'
を参照してください(例::help 'tabstop'
)
現在のユーザーに対して永続的にこれを定義するには、.vimrc
ファイルを作成(または編集)します。
$ vim ~/.vimrc
次に、以下の設定をファイルに貼り付けます。 Vimが再起動されると、タブの設定が適用されます。
set tabstop=4 " The width of a TAB is set to 4.
" Still it is a \t. It is just that
" Vim will interpret it to be having
" a width of 4.
set shiftwidth=4 " Indents will have a width of 4
set softtabstop=4 " Sets the number of columns for a TAB
set expandtab " Expand TABs to spaces
またはvim modelineの短縮形:
vim :set ts=4 sw=4 sts=4 et :
これをコピーして.vimrcファイルに貼り付けました。
" size of a hard tabstop
set tabstop=4
" always uses spaces instead of tab characters
set expandtab
" size of an "indent"
set shiftwidth=4
最初の2つの設定は、Tabキーを押すと4つのスペースが表示されることを意味します。 3番目の設定は、私がV>
を実行すると(つまりビジュアルとインデント)、4つのスペースも得られることを意味します。
一般に認められている答えほど包括的ではありませんが、何かをコピーして貼り付けたいだけの人にとっては役に立つかもしれません。
スペースまたはタブを使用するかどうかを定義する設定はほとんどありません。
だからここにあなたの~/.vimrc
ファイルで定義することができる便利な関数があります:
function! UseTabs()
set tabstop=4 " Size of a hard tabstop (ts).
set shiftwidth=4 " Size of an indentation (sw).
set noexpandtab " Always uses tabs instead of space characters (noet).
set autoindent " Copy indent from current line when starting a new line (ai).
endfunction
function! UseSpaces()
set tabstop=2 " Size of a hard tabstop (ts).
set shiftwidth=2 " Size of an indentation (sw).
set expandtab " Always uses spaces instead of tab characters (et).
set softtabstop=0 " Number of spaces a <Tab> counts for. When 0, featuer is off (sts).
set autoindent " Copy indent from current line when starting a new line.
set smarttab " Inserts blanks on a <Tab> key (as per sw, ts and sts).
endfunction
使用法:
:call UseTabs()
:call UseSpaces()
ファイル拡張子ごとに使用するには、次の構文を使用できます(.vimrc
に追加)。
au! BufWrite,FileWritePre *.module,*.install call UseSpaces()
タブをスペースに変換する も参照してください。
これはウィキアからの別のスニペットです。これは タブとスペースの切り替え :
" virtual tabstops using spaces
set shiftwidth=4
set softtabstop=4
expandtab
" allow toggling between local and default mode
function TabToggle()
if &expandtab
set shiftwidth=8
set softtabstop=0
set noexpandtab
else
set shiftwidth=4
set softtabstop=4
set expandtab
endif
endfunction
nmap <F9> mz:execute TabToggle()<CR>'z
タブごとに4つのスペースを使用して、 F9 設定を切り替えます。
必要な設定を 〜/ .vimrc ファイルに入れます - いくつかのガイドラインとベストプラクティスについては以下を参照してください。
Vimでタブを使うには4つの主な方法があります。
'tabstop'を常に8に保ち、 'softtabstop'と 'shiftwidth'を4(または3か好きなもの)に設定して 'noexpandtab'を使用してください。そうするとVimはタブとスペースを混ぜて使うだろうが、タイプしてタブが4(または3)文字ごとに現れるように振る舞う。
注: 'tabstop'を8以外の値に設定すると、多くの場所(たとえば印刷時)でファイルが正しく表示されなくなる可能性があります。
'tabstop'と 'shiftwidth'を好きなように設定し、 'expandtab'を使ってください。このようにあなたはいつもスペースを挿入するでしょう。 'tabstop'が変更されても書式設定が崩れることはありません。
'tabstop'と 'shiftwidth'を好きなように設定し、| modeline |を使用してください。ファイルを再度編集するときにこれらの値を設定します。 Vimを使ってファイルを編集しているときにのみ機能します。
必ず 'tabstop'と 'shiftwidth'を同じ値に、 'noexpandtab'を設定してください。これは、人々が使用するタブストップ設定に対して(最初のインデントのみ)機能するはずです。あなたがこれをするならば、スペースとして挿入される最初の非空白の後にタブを持つのはいいかもしれません。そうでなければ、 'tabstop'が変更されたときに整列されたコメントは間違っているでしょう。
ソース:
もう一つ、使い方:retab
既存のtab
をspaces
http://vim.wikia.com/wiki/Converting_tabs_to_spaces に変換する
行を追加set ts=4
に~/.vimrc
ファイル(ユーザーごと)
または
システム全体の/etc/vimrc
ファイル
:set sw=4
コメント付きの私の基本的な〜/ .vimrc:
set number " show line number
set tabstop=2 " set display width of tab; 1 tab = x space with
set expandtab " transform tab to x space (x is tabstop)
set autoindent " auto indent; new line with number of space at the beginning same as previous
set shiftwidth=2 " number of space append to lines when type >>