2016-08-31 21 views
0

我有到expandtab經典設置在我/etc/vimrc如何強制一個選項被vim插件重寫後?

set expandtab 
set tabstop=4 
set shiftwidth=4 

如何確保他們不被任何插件重寫?

如何強制他們忽略所有插件?

/etc/vimrc中的設置被語言特定的設置覆蓋。我想反其道而行之 - 任何特定於語言的設置都會被我的設置覆蓋/etc/vimrc

我很欣賞filetype的「智能」設置,但它們太聰明瞭 - 默認vim設置在一些不相關的文件上設置noexpandtab。即使我能找到罪魁禍首插件,我也不想一一解決 - 總有一個機會,一些新的插件會再次搞砸了。我寧願住在偶然的空間(預期選項卡),否則。

+1

首先,你的自定義設置沒有什麼在'/ etc/vimrc'做,把它們放在'〜/ .vimrc'。其次,如果您不希望filetype插件覆蓋您的映射,請不要啓用它們。 – romainl

+0

@romainl,我想設置'expandtab'爲默認主機上的所有用戶**覆蓋插件設置,而不會讓任何新用戶出現這些問題(即使我是唯一的用戶和root用戶)。所以,'/ etc/vimrc'就是正確的選擇。我也只想覆蓋'expandtab'(不禁用任何其他插件定製)。 – uvsmtid

+3

無論你的用戶做什麼都會覆蓋你放在'/ etc/vimrc'中的內容。 – romainl

回答

1

滿足您的要求同時仍然啓用文件類型插件的唯一方法我能想到涉及覆蓋每個可能的文件類型插件。

最簡單的可能是用自動命令做到在/etc/vimrc

augroup expandtabFTW 
    autocmd! 
    autocmd FileType * setlocal expandtab 
augroup END 
+0

太棒了!到目前爲止,我通過在單個'〜/ .vimrc'中添加'set expandtab'來強制它(這是可以忘記的)。整個文件就是這一行。 'set expandtab'在'〜/ .vimrc'中確實起作用,但'/ etc/vimrc'中沒有'這真的令人沮喪。 – uvsmtid

+0

@uvsmtid,如果你想要強制將'/ etc/vimrc'設置考慮進去,需要最終用戶從他們的〜/ .vimrc'中':source'這個文件。恐怕沒有太多其他解決方案。如果你把一個插件放到'/ usr/share/vim/vim {version} /後面/ plugin/yourcompanysettings.vim'中,可能會出現這種情況。除了這個不適合放置任何東西的地方,它應該只保留Vim的官方發行版。你可能對':h'rtp''和':h startup'感興趣。 –

相關問題