将选项卡重新定义为4个空格
我目前的设置假设有8个空格; 我怎么能重新定义它?
这取决于你的意思。 你想在你的文件中的实际制表符显示 4个空格宽,或通过“制表符”实际上是一个缩进 ,由按Tab键生成,这将导致该文件字面上包含(最多)4个空格字符为每个“标签”你键入?
根据您的回答,以下其中一组设置应该适合您:
-
对于出现4个空格宽度的制表符 :
set tabstop=4
如果您在源代码中使用实际的制表符,您可能还需要这些设置(这些实际上是默认设置,但您可能需要防御设置):
set softtabstop=0 noexpandtab
最后,如果你想要一个缩进来对应一个标签,你还应该使用:
set shiftwidth=4
-
对于包含4个空格字符但用Tab键input的缩进 :
set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab
为了使上述设置永久添加这些行到您的vimrc 。
如果您需要进行调整,或者只是想了解这些选项都意味着什么,下面是每个选项意味着什么的细分:
tabstop
在“空格”中测量的硬tabstop的宽度 – 实际上是实际制表符的(最大)宽度。
shiftwidth
“缩进”的大小。 它也是用空格来衡量的,所以如果你的代码基地使用tab字符缩进,那么你需要
shiftwidth
等于制表符的数量tabstop
。 这也被诸如=
,>
和<
命令使用。
softtabstop
将其设置为除
tabstop
之外的非零值将使Tab键(在插入模式下)插入空格组合(可能是制表符)以模拟此宽度处的制表位。
expandtab
启用它将使Tab键(在插入模式下)插入空格而不是制表符。 这也会影响到
retab
命令的行为。
smarttab
启用此选项将使Tab键(在插入模式下)插入空格或制表符,当光标位于行的开头(即只有前面的字符是空格)时,才会转到下一个制表符的下一个缩进处。
有关这些的更多细节,请参阅:help ' optionname '
vim中:help ' optionname '
(例如:help 'tabstop'
)
要为当前用户永久定义这一点,请创build(或编辑) .vimrc
文件:
$ vim ~/.vimrc
然后,将以下configuration粘贴到文件中。 一旦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
前两个设置意味着当我按Tab键时,我得到4个空格。 第三个设置意味着当我做V>
(即视觉和缩进)时,我也得到4个空格。
没有被接受的答案那么全面,但它可能帮助那些只想复制和粘贴的人。
将所需的设置放在〜/ .vimrc文件中 – 请参阅下面的一些准则和最佳实践。
在Vim中有四种主要的使用标签的方法:
-
始终保持“tabstop”为8,将“softtabstop”和“shiftwidth”设置为4(或3或任何你喜欢的)并使用“noexpandtab”。 然后,Vim将使用标签和空格的混合,但是每4(或3)个字符就会出现一个标签。
注意:将“tabstop”设置为除8以外的任何值都可能使文件在许多地方出现错误(例如打印时)。
-
设置'tabstop'和'shiftwidth'为你喜欢的任何东西,并使用'expandtab'。 这样你总会插入空格。 当“tabstop”被改变时,格式不会被搞乱。
-
将“tabstop”和“shiftwidth”设置为任何你喜欢的,并使用| modeline | 再次编辑文件时设置这些值。 只有在使用Vim编辑文件时才有效。
-
总是将“tabstop”和“shiftwidth”设置为相同的值,“noexpandtab”。 这应该适用于任何人们使用的tabstop设置(仅适用于初始缩进)。 如果你这样做的话,把第一个非空白插入为空格可能会很好。 否则,在“tabstop”更改时,alignment的注释将会出错。
资源:
- vimdoc.sourceforge.net/htmldoc/options.html#'tabstop”
-
:help tabstop
添加线
set ts=4
在
~/.vimrc
文件为每个用户
要么
/etc/vimrc
文件系统范围
:set sw=4
请参阅掌握VI编辑器
还有一件事,使用
:retab
将现有tab
转换为http://vim.wikia.com/wiki/Converting_tabs_to_spaces spaces