每次我在CSS中添加选择器并按Enter来定义属性时,它最终是这样的:

#selector {
        property: value;
}

(8-space标签)

我如何配置Vim使它像这样:

#selector {
    property: value;
}

(4空间选项卡)


当前回答

更新

如果您在一个特定的项目中工作,我强烈建议使用editorconfig。

它允许您在存储库的根定义一个.editorconfig文件,定义跨存储库的每种文件类型所需要的缩进。

例如:

root = true

[*.css]
charset = utf-8
indent_style = space
indent_size = 4

[*.js]
charset = utf-8
indent_style = space
indent_size = 2

有一个vim插件可以根据你打开的文件的配置文件自动配置vim。

此外,许多其他ide和编辑器都自动支持.editorconfig文件,因此它是不同环境下用户之间协作的最佳选择。

原来的答案

如果你需要经常改变大小,并且你不想把它绑定到特定的文件类型,你可以在你的.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命令模式下,写入:

:set ts=X

X是你想要的新空间长度

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

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

本页上的几个答案是对所描述问题的“一次性”修复。这意味着,下次使用vim打开文档时,将返回先前的选项卡设置。

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

在这里找到/打开你的.vimrc -指令 添加以下行:(更多信息在这里) 设置制表符= 4 设置shiftwidth = 4 设置expandtab 然后保存文件并进行测试

在我的。vim/vimrc (ubuntu bionic下的vim 8.0)中,我有

if has("autocmd")
  filetype plugin indent on
endif

所以添加了这样的行: autocmd文件类型css setlocal tabstop=2 是行不通的。

我创建了。vim/indent文件夹,并添加: css。vim与

set tabstop=2
set shiftwidth=2
set softtabstop=2

它确实有效! 我试着在另一台ubuntu focal和vim 8.1的电脑上,它不工作!

作为vim中的一行代码:

:set tabstop=4 shiftwidth=4

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

set tabstop=4
set shiftwidth=4
set expandtab    <-- (optional) 4-spaces instead of Tab indentation