这取决于你的意思。您是否希望文件中的实际制表符显示为 4 个空格宽,或者 “tab” 是否实际上是指通过按 Tab 键生成的缩进 ,这将导致文件字面上包含(最多)4 个空格字符你输入的每个 “标签”?
根据您的答案,以下设置之一应该适合您:
对于出现 4 个空格宽的制表符 :
set tabstop=4
如果您在源代码中使用实际制表符,则可能还需要这些设置(这些实际上是默认设置,但您可能希望以防御方式设置它们):
set softtabstop=0 noexpandtab
最后,如果您希望缩进对应于单个选项卡,您还应该使用:
set shiftwidth=4
对于包含 4 个空格字符但使用 Tab 键输入的缩进 :
set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab
要使上述设置永久添加到您的vimrc 。
如果您需要进行调整,或者只是想了解这些选项的含义,这里是每个选项的含义细分:
tabstop
在 “空格” 中测量的硬 tabstop 的宽度 - 实际上是实际制表符的(最大)宽度。
shiftwidth
“缩进” 的大小。它也是在空格中测量的,所以如果您的代码库用制表符缩进,那么您希望
shiftwidth
等于制表符的数量乘以tabstop
。这也用于=
,>
和<
命令之类的东西。
softtabstop
将此设置为
tabstop
以外的非零值将使 Tab 键(在插入模式下)插入空格组合(以及可能的选项卡)以模拟此宽度处的制表位。
expandtab
启用此选项将使 Tab 键(在插入模式下)插入空格而不是制表符。这也会影响
retab
命令的行为。
smarttab
启用此选项将使 tab 键(在插入模式下)插入空格或制表符,以便当光标位于行的开头时(即前面的唯一字符是空格),转到下一个 tabstop 的下一个缩进。
有关其中任何一个的更多详细信息,请参阅:help ' <em>optionname</em> '
vim 中:help ' <em>optionname</em> '
(例如: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 :