我的vim配置使用该设置expandtab用空格替换制表符.
对于某些配置文件,例如rsnapshot配置文件,我必须使用制表符而不是空格.
另请注意,字段由制表符分隔,而不是空格.这样做的原因是更容易指定包含空格的文件路径. rsnapshot文档
在我的Ubuntu 16.04和Debian 9.0 Server上,存储了rsnapshot配置文件/etc/rsnapshot.conf.
如何设置.vimrc仅使用特定文件名的选项卡?比如rsnapshot.conf?
如果您询问如何配置是否使用硬标签(制表符)与缩进空格,基于文件类型,您可以使用autocmd挂钩来实现.
例如,这是大多数文件的基本缩进配置.它设置了一个8的tabstop(用于硬标签显示),大多数标签/缩进移位是4,它们使用空格而不是硬标签.
set tabstop=8 softtabstop=4 shiftwidth=4 expandtab
Run Code Online (Sandbox Code Playgroud)
但是,在某些语法错误.例如,我想在Javascript和YAML中有2个空格.在Makefile中,space indent是一个语法错误 - 在那里,我想要硬标签.您可以使用autocmd和相关文件类型设置这些内容.
autocmd Filetype make setlocal noexpandtab
autocmd Filetype yaml setlocal shiftwidth=2 softtabstop=2
autocmd Filetype javascript setlocal shiftwidth=2 softtabstop=2
Run Code Online (Sandbox Code Playgroud)
如果您不想按文件类型指定,还可以指定文件名(或匹配文件名的glob).
autocmd BufNewFile,BufRead rsnapshot.conf setlocal noexpandtab
Run Code Online (Sandbox Code Playgroud)