2017-07-16 76 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

非常感謝! –