2017-07-16 43 views
1

我的vim configuration使用设置expandtab将标签替换为空格。仅使用硬标签,仅在某些文件中

对于某些配置文件(例如rsnapshot配置文件),我必须使用制表符而不是空格。

另请注意,字段之间用制表符分隔,而不是空格。这是因为使用空格指定文件路径更容易。 rsnapshot documentation

在我的Ubuntu 16.04和Debian 9.0服务器,在rsnapshot配置文件存储在/etc/rsnapshot.conf

我如何设置.vimrc以仅使用特定文件名的选项卡?例如rsnapshot.conf

+3

你是什么意思“tabspaces”和“whitspaces”? – melpomene

回答

3

如果您要求如何配置是否使用硬标签(制表符)与用于缩进的空格(基于文件类型),则可以使用autocmd挂钩来完成此操作。

例如,这里是我对大多数文件的基础缩进配置。它设置了一个8的tabstop(用于硬标签显示),并且大多数tab/indentation shift是4,并且它们使用空格而不是硬标签。

set tabstop=8 softtabstop=4 shiftwidth=4 expandtab 

然而,在一些语法这是错误的。例如,我想在Javascript和YAML中使用2个空格。在Makefiles中,空格缩进是一个语法错误 - 在那里,我想要硬标签。您可以使用autocmd和相关文件类型来设置这些内容。

autocmd Filetype make  setlocal noexpandtab 
autocmd Filetype yaml  setlocal shiftwidth=2 softtabstop=2 
autocmd Filetype javascript setlocal shiftwidth=2 softtabstop=2 

如果您不想通过文件指定类型你也可以指定文件名(或水珠匹配文件名)。

autocmd BufNewFile,BufRead rsnapshot.conf setlocal noexpandtab 
+0

非常感谢! –