我正在通過我的vim dotfiles來整理它們。我注意到,我一直以各種不一致的方式添加各種文件類型特定的設置。假設我正在爲Python定製:在.vim和.vimrc中組織文件類型設置的最佳方法是什麼?
au BufRead,BufNewFile *.py (do something)
。我不喜歡這樣做,因爲一些Python文件可能沒有.py終結符。au FileType python (do something)
。這似乎是一個更好的選擇,因爲它不依賴於具有.py終止的文件。缺點是Vim不知道一些文件類型。我可以讓Vim識別附加的文件類型,但是我也有不同的方式來執行它:.vim/filetype.vim
文件,.vim/after/filetype.vim
中的另一個文件和.vimrc
中的各種set filetype
命令。添加一個文件類型特定設置的
.vim/ftplugin/python.vim
文件。我知道$VIMRUNTIME/ftplugin/python.vim
可以覆蓋我在這裏設置的任何設置。一個問題是我不確定這是如何與.vim/filetype.vim
和.vim/after/filetype.vim
相互作用的。添加一個
.vim/after/ftplugin/python.vim
。我知道這是在$VIMRUNTIME/ftplugin/python.vim
之後加載的,因此它可以覆蓋那裏的設置。與前面的方法一樣,我不確定它如何與filetype.vim
文件進行交互。
所以我必須這樣做,不說也罷語法文件和特定文件類型的插件至少在四個方面。在我看來,最好的辦法是將我的文件類型特定設置放在after/ftplugin
中,以免它們被覆蓋,filetypes.vim
在after
中出於同樣的原因。
但是,在繼續之前,我想問問任何人是否有關於處理文件類型特定設置的最佳方法的建議。
只是想在這裏添加一個註釋,並非所有的設置都必須位於一個文件類型的單個文件中,它們可以位於以filetype命名的目錄中。我在.vim/ftplugin/python/{pydoc.vim,python.vim等中有我的python設置(和特定於python的插件)。} – 2010-05-23 01:55:57
+1:偉大的一點,如果你有一個給定的文件類型很多不同的設置這是一個非常乾淨的方式來組織它們。 – Johnsyweb 2010-05-23 02:11:32
如果您將您的點文件保存在源代碼管理下,則可以更輕鬆地保持您的所有點文件始終處於最新狀態。 – Johnsyweb 2010-05-23 02:12:05