W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
我們需要講到的第一件事是如何配置我們的插件。在過去,這會是一次混亂的折騰, 但現(xiàn)在我們有一個工具可以非常方便地安裝Vim插件。
我們需要先過一下基本的配置方式,然后我們會講到如何省下麻煩。
Vim支持把插件分割成多個文件。你可以在~/.vim
下創(chuàng)建許多不同種類的文件夾來放置不同的內(nèi)容。
我們現(xiàn)在將講述其中最為重要的幾個文件夾,但不會在上面花費太多時間。 當(dāng)我們創(chuàng)造Potion插件時,我們會逐一認(rèn)識它們的。
在我們繼續(xù)前進(jìn)之前,需要先確定一些用詞規(guī)范。
我將用"插件"表示一大堆做一系列相關(guān)事情的Vimscript代碼。 在Vim里,"插件(plugin)"有一個更專業(yè)的定義,它表示"~/.vim/plugins/
下的一個文件"。
在大多數(shù)時間里,我將使用第一個定義。如果指的是第二個定義,我會特意指明。
Vim將會查找~/.vim/colors/mycolors.vim
并執(zhí)行它。 這個文件應(yīng)該包括生成你的配色方案所需的一切Vimscript命令。
本書中,我們不會談到配色方案。如果想創(chuàng)造屬于自己的配色方案,你應(yīng)該從一個現(xiàn)存的配色方案上改造出來。 記住,:help
將與你常在。
~/.vim/plugin/
下的文件將在_每次_Vim啟動的時候執(zhí)行。 這里的文件包括那些無論何時,在啟動Vim之后你就想加載的代碼。
~/.vim/ftdetect/
下的文件在每次你啟動Vim的時候_也會_執(zhí)行。
ftdetect
是"filetype detection"的縮寫。 這里的文件_僅僅_負(fù)責(zé)啟動檢測和設(shè)置文件的filetype
類型的自動命令。 這意味著它們一般不會超過一兩行。
~/.vim/ftplugin/
下的文件則各不相同。
一切皆取決于它的名字!當(dāng)Vim把一個緩沖區(qū)的filetype
設(shè)置成某個值時, 它會去查找~/.vim/ftplugin/
下對應(yīng)的文件。 比如:如果你執(zhí)行set filetype=derp
,Vim將查找~/.vim/ftplugin/derp.vim
。 一旦文件存在,Vim將執(zhí)行它。
Vim也支持在~/.vim/ftplugin/
下放置文件夾。 再以我們剛才的例子為例:set filetype=derp
將告訴Vim去執(zhí)行~/.vim/ftplugin/derp/
下的全部*.vim
文件。 這使得你可以按代碼邏輯分割在ftplugin
下的文件。
因為每次在一個緩沖區(qū)中執(zhí)行filetype
時都會執(zhí)行這些文件,所以它們_只能_設(shè)置buffer-local選項! 如果在它們中設(shè)置了全局選項,所有打開的緩沖區(qū)的設(shè)置都會遭到覆蓋!
~/.vim/indent/
下的文件類似于ftplugin
下的文件。加載時也是只加載名字對應(yīng)的文件。
indent
文件應(yīng)該設(shè)置跟對應(yīng)文件類型相關(guān)的縮進(jìn),而且這些設(shè)置應(yīng)該是buffer-local的。
是的,你當(dāng)然可以把這些代碼也一并放入ftplugin
文件, 但最好把它們獨立出來,讓其他Vim用戶理解你的意圖。這只是一種慣例,不過請盡量體貼用戶并遵從它。
~/.vim/compiler
下的文件非常類似于indent
文件。它們應(yīng)該設(shè)置同類型名的當(dāng)前緩沖區(qū)下的編譯器相關(guān)選項。
不要擔(dān)心不懂什么是"編譯器相關(guān)選項"。我們等會會解釋。
~/.vim/after
文件夾有點神奇。這個文件夾下的文件會在每次Vim啟動的時候加載, 不過是在~/.vim/plugin/
下的文件加載了之后。
這允許你覆蓋Vim的默認(rèn)設(shè)置。實際上你將很少需要這么做,所以不用理它, 除非你有"Vim設(shè)置了選項x
,但我想要不同的設(shè)置"的主意。
~/.vim/autoload
文件夾就更加神奇了。事實上它的作用沒有聽起來那么復(fù)雜。
簡明扼要地說:autoload
是一種延遲插件代碼到需要時才加載的方法。 我們將在重構(gòu)插件的時候詳細(xì)講解并展示它的用法。
最后,~/.vim/doc/
文件夾提供了一個你可以放置你的插件的文檔的地方。 Vim對文檔的要求是多多益善(看看我們執(zhí)行過的所有:help
命令就知道),所以為你的插件寫文檔是重要的。
重讀本章。我沒開玩笑。確保你(大體上)明白我們講過的每一個文件夾。
作為額外的加分,找一些你正在用的Vim插件看看它們?nèi)绾谓M織代碼文件。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: