如何在Vim中更改标签大小?

ale*_*nco 140 vim tabs

每次我在CSS中添加一个选择器,我按Enter下来定义属性,它最终会像这样:

#selector {
        property: value;
}
Run Code Online (Sandbox Code Playgroud)

(8个空格标签)

如何配置Vim使其像这样:

#selector {
    property: value;
}
Run Code Online (Sandbox Code Playgroud)

(4个空格标签)

zou*_*oul 184

:set tabstop=4
:set shiftwidth=4
:set expandtab
Run Code Online (Sandbox Code Playgroud)

这将插入四个空格而不是制表符.空格更加"稳定",这意味着用空格缩进的文本在浏览器和任何其他应用程序中都会显示相同的内容.

  • 是的,但标签是语义的(每个标签表示1层缩进),而空格纯粹是表示.或者换句话说,使用制表符会让其他人查看您的代码,但是他们很宽松,而空间则不允许这样做. (64认同)
  • 请注意,如果你喜欢**'>'**和**'<'**来移动文本与**tab** - key相同的距离,你可以简单地在你的vimrc中设置`:shift shiftwidth = 0`并且永远忘记它,因为这告诉vim你总是希望它匹配`tabstop`. (8认同)
  • [使用 Spaces 的开发者比使用 Tab 的开发者赚更多钱](https://stackoverflow.blog/2017/06/15/developers-use-spaces-make-money-use-tabs/) (6认同)
  • 制表符比空格更好,你无法改变我的想法。 (5认同)
  • 空间是最好的恕我直言 (2认同)

Kei*_*ith 105

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

:set tabstop=4
Run Code Online (Sandbox Code Playgroud)

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

set tabstop=4
Run Code Online (Sandbox Code Playgroud)

这将影响所有文件,而不仅仅是css.仅影响css文件:

autocmd Filetype css setlocal tabstop=4
Run Code Online (Sandbox Code Playgroud)

正如Michał的回答所述.

  • 问题是"如何在Vim中更改标签大小?" (5认同)
  • 如果你想让tab作为四个空格运行,有必要将@Zoul答案中的其他行添加到.vimrc中; 也就是说,将'set shiftwidth = 4'和'set expandtab'添加到.vimrc中. (2认同)

Mic*_*zyk 88

扩展zoul的答案:

如果要在编辑特定文件类型时将Vim设置为使用特定设置,则需要使用自动命令:

autocmd Filetype css setlocal tabstop=4
Run Code Online (Sandbox Code Playgroud)

这将使标签显示为4个空格.设置expandtab将导致Vim tabstop在按Tab键时实际插入空格(由其控制的数量); 您可能希望使用softtabstop以使退格正常工作(也就是说,当使用选项卡时会发生什么情况时减少缩进,而不是总是一次删除一个char).

为了充分受过教育的决定至于如何设置的东西了,你需要上阅读Vim的文档tabstop,shiftwidth,softtabstopexpandtab.最有趣的一点是在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'更改时,对齐的注释将是错误的.


oz1*_*z19 44

作为单行进入 vim

:set tabstop=4 shiftwidth=4
Run Code Online (Sandbox Code Playgroud)

对于永久设置,将这些行添加到~/.vimrc

set tabstop=4
set shiftwidth=4
set expandtab    <-- (optional) 4-spaces instead of Tab indentation
Run Code Online (Sandbox Code Playgroud)

  • 请记住,这会插入空格**而不是**制表符。对于选项卡,从 ~/.vimrc 文件中删除“expandtab” (5认同)

Ale*_*lty 33

此页面上的几个答案是针对所述问题的"单次使用"修复.这意味着,下次使用vim打开文档时,将返回先前的选项卡设置.

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

  • 这会插入空格,而不是制表符. (8认同)
  • @Supernovah您可以删除“ expandtab”,以获取标签 (3认同)

Jen*_*ens 6

如果您需要经常更改大小,并且不想将其绑定到特定的文件类型,则可以在.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>
Run Code Online (Sandbox Code Playgroud)

这会将两组不同的大小映射到键\ t和\ m。您可以将此绑定到所需的任何键。