【发布时间】:2011-08-26 03:06:45
【问题描述】:
你好。 所以,我经常在制表符的“2”和“4”空格之间切换。通常我使用 2 个空格作为 HTML 文件的制表符,4 个空格作为编程的制表符。有没有配置VIM,所以它会根据文件扩展名自动调整? 另外,为什么 VIM 有时会缩进 8 个空格,比如在我输入一个左大括号之后?我将其设置为 4 个空格。 谢谢。
【问题讨论】:
你好。 所以,我经常在制表符的“2”和“4”空格之间切换。通常我使用 2 个空格作为 HTML 文件的制表符,4 个空格作为编程的制表符。有没有配置VIM,所以它会根据文件扩展名自动调整? 另外,为什么 VIM 有时会缩进 8 个空格,比如在我输入一个左大括号之后?我将其设置为 4 个空格。 谢谢。
【问题讨论】:
在 vim 中输入 :help syntax。这将打开一个帮助文件,概述随后的页面/文件,向您展示如何将文件扩展名绑定到语法文件,您可以在其中:set shiftwidth=2和:set tabstop=2for e。 G。 HTML 文件。我猜你安装的语法文件也是造成大括号缩进症状的原因。
【讨论】:
:set 用于与文件类型相关的内容。有:setlocal。
set sw=4 ts=4 sts=4 " Defaults: four spaces per tab "
autocmd FileType html :setlocal sw=2 ts=2 sts=2 " Two spaces for HTML files "
这里有三个不同的选项:'shiftwidth' ('sw') 控制自动缩进的空格数和一些移位命令(如正常模式下的<<),'tabstop' ('ts') 控制视觉长度一个真正的制表符,您可能希望保留默认值(8 个可视单元格),“softtabstop”(“sts”)控制按下<Tab> 和<CR> 时插入/删除的内容。我建议您将其设置为 'tabstop' 的值或将其与 'expandtab' 一起设置,因为在其他情况下它会产生难看的制表符+空格缩进。
【讨论】:
autocmd FileType html,xml,whatever :...。这里的冒号是可选的,我只是想让代码更具可读性。您还可以使用:h line-continuation 将:setlocal 移动到模式后的下一行。