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

#selector {
        property: value;
}

(8-space标签)

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

#selector {
    property: value;
}

(4空间选项卡)


当前回答

在vim命令模式下,写入:

:set ts=X

X是你想要的新空间长度

其他回答

在vim命令模式下,写入:

:set ts=X

X是你想要的新空间长度

要更改一个会话,使用以下命令:

:set tabstop=4

要使更改永久生效,请将其添加到~/。Vimrc或~/.vim/ Vimrc:

set tabstop=4

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

autocmd Filetype css setlocal tabstop=4

正如米夏拉的回答中所述。

在我的。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的电脑上,它不工作!

更新

如果您在一个特定的项目中工作,我强烈建议使用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 tabstop=4 shiftwidth=4

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

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