如何在Vim中更改制表符大小?

每次我在CSS中添加一个select器,然后按Enter来定义最终的属性,如下所示:

 #selector { property: value; } 

(8个空格标签)

我如何configurationVim使其如下所示:

 #selector { property: value; } 

(4个空格标签)

扩大zoul的答案:

如果你想在编辑特定的文件types时设置Vim使用特定的设置,你需要使用自动命令:

 autocmd Filetype css setlocal tabstop=4 

这将使选项卡显示为4个空格。 设置expandtab会导致Vim实际插入空格(它们由tabstop控制的数量),当你按Tab键; 您可能需要使用softtabstop来使退格工作正常(也就是说,如果使用制表符,而不是始终一次删除一个字符,则会减less缩进)。

为了做出完全教育的决定,你需要阅读tabstopshiftwidthsofttabstopexpandtab Vim文档。 最有趣的位是expandtab:help 'expandtab ):

在Vim中有四种主要的使用标签的方法:

  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设置(仅适用于初始缩进)。 如果你这样做的话,把第一个非空白插入为空格可能会很好。 否则,当“tabstop”更改时,alignment的注释将会出错。

 :set tabstop=4 :set shiftwidth=4 :set expandtab 

这将插入四个空格而不是制表符。 空格有点“稳定”,这意味着在空格中缩进的文本在浏览器和任何其他应用程序中将显示相同。

要对一个会话进行更改,请使用以下命令:

 :set tabstop=4 

要使更改永久化,请将其添加到~/.vimrc~/.vim/vimrc

 set tabstop=4 

这将影响所有文件,而不仅仅是CSS。 只影响CSS文件:

 autocmd Filetype css setlocal tabstop=4 

正如Michał的回答所述 。

如果需要经常更改大小,并且不想将其绑定到特定的文件types,则可以在.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> 

这将两个不同的大小映射到键\ t和\ m。 你可以重新绑定到任何你想要的密钥。

我相信在这个页面上的答案都是“一次性使用”,这意味着下次用vim打开文档时,将返回前面的选项卡设置。

如果有人对永久更改标签设置感兴趣:

  • find/打开你的.vimrc – 这里的说明
  • 添加以下行:( 更多信息在这里 )

      set tabstop=4 set shiftwidth=4 set expandtab 
  • 然后保存文件和testing