将选项卡重新定义为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中有四种主要的使用标签的方法:

  1. 始终保持“tabstop”为8,将“softtabstop”和“shiftwidth”设置为4(或3或任何你喜欢的)并使用“noexpandtab”。 然后,Vim将使用标签和空格的混合,但是每4(或3)个字符就会出现一个标签。

    注意:将“tabstop”设置为除8以外的任何值都可能使文件在许多地方出现错误(例如打印时)。

  2. 设置'tabstop'和'shiftwidth'为你喜欢的任何东西,并使用'expandtab'。 这样你总会插入空格。 当“tabstop”被改变时,格式不会被搞乱。

  3. 将“tabstop”和“shiftwidth”设置为任何你喜欢的,并使用| modeline | 再次编辑文件时设置这些值。 只有在使用Vim编辑文件时才有效。

  4. 总是将“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