標籤:
plugin、autoload、ftplugin有什麼區別
很多初用vim的朋友在安裝外掛程式時都會有些疑惑。同樣的外掛程式,有些教程說安裝在plugin目錄,有些說安裝在ftplugin目錄,有些說安裝在autoload目錄,到底這些目錄的區別是什麼呢?今天阿駒跟大家解說一下。
一般,我們安裝好vim後,應該會建立一個使用者vim檔案夾,裡面的子目錄結構和原vim的目錄結構幾乎一樣,例如在windows平台下這個名稱是vimfiles,在unix類平台下是~/.vim。但它們的子目錄結構都類似下面這樣:
|-after
|—ftplugin
|—syntax
|-autoload
|-colors
|-compiler
|-doc
|-ftplugin
|—latex-suite
|—–dictionaries
|—–macros
|—–packages
|—–templates
|—python
|-indent
|-plugin
|-spell
|-syntax
~/.vim/colors/是用來存放vim色彩配置的。
~/.vim/plugin/存放的是每次啟動vim都會被運行一次的外掛程式,也就是說只要你想在vim啟動時就啟動並執行外掛程式就放在這個目錄下。
~/.vim/ftdetect/中的檔案同樣也會在vim啟動時就運行。有些時候可能沒有這個目錄。ftdetect代表的是“filetype detection(檔案類型檢測)”。此目錄中的檔案應該用自動命令(autocommands)來檢測和設定檔案的類型,除此之外並無其他。也就是說,它們只該有一兩行而已。
~/.vim/ftplugin/此目錄中的檔案有些不同。當vim給緩衝區的filetype設定一個值時,vim將會在~/.vim/ftplugin/ 目錄下來尋找和filetype相同名字的檔案。例如你運行set filetype=derp這條命令後,vim將尋找~/.vim/ftplugin/derp.vim此檔案,如果存在就運行它。不僅如此,它還會運行ftplugin下相同名字的子目錄中的所有檔案,如~/.vim/ftplugin/derp/這個檔案夾下的檔案都會被運行。每次啟用時,應該為不同的檔案類型設定局部緩衝選項,如果設定為全域緩衝選項的話,將會覆蓋所有開啟的緩衝區。
~/.vim/indent/這裡面的檔案和ftplugin中的很像,它們也是根據它們的名字來載入的。它放置了相關檔案類型的縮排。例如python應該怎麼縮排,java應該怎麼縮排等等。其實放在ftplugin中也可以,但單獨列出來只是為了方便檔案管理和理解。
~/.vim/compiler/和indent很像,它放的是相應檔案類型應該如何編譯的選項。
~/.vim/after/這裡面的檔案也會在vim每次啟動的時候載入,不過是等待~/.vim/plugin/載入完成之後才載入after裡的內容,所以叫做after。
~/.vim/autoload/它是一個非常重要的目錄,儘管聽起來比實際複雜。簡而言之,它裡面放置的是當你真正需要的時候才被自動載入啟動並執行檔案,而不是在vim啟動時就載入。
~/.vim/doc/為外掛程式放置文檔的地方。例如:help的時候可以用到。
~/.vim/spell/拼字檢查指令碼。
~/.vim/syntax/文法描述指令碼。
vim目錄說明