Vimscript 檢測文件類型

2018-02-24 16:02 更新

讓我們創(chuàng)建一個(gè)Potion文件作為插件的測試樣本。

factorial = (n):
    total = 1
    n to 1 (i):
        total *= i.
    total.

10 times (i):
    i string print
    '! is: ' print
    factorial (i) string print
    "\n" print.

這個(gè)代碼創(chuàng)建了一個(gè)簡單的階乘函數(shù)并調(diào)用它10次,逐次輸出結(jié)果。繼續(xù)前進(jìn)并用potion factorial.pn執(zhí)行它。 輸出結(jié)果應(yīng)該像這樣:

0! is: 0
1! is: 1
2! is: 2
3! is: 6
4! is: 24
5! is: 120
6! is: 720
7! is: 5040
8! is: 40320
9! is: 362880

如果你得不到這個(gè)輸出,或者你得到一個(gè)錯(cuò)誤,停下來并排查問題所在。 這個(gè)代碼應(yīng)該會正常工作的。

這跟學(xué)習(xí)Vimscript沒有關(guān)系,不過它能讓你成為更好的程序猿。

檢測Potion文件

用Vim打開factorial.pn并執(zhí)行下面命令:

:set filetype?

Vim將顯示filetype=,因?yàn)樗€不認(rèn)識.pn文件。讓我們解決這個(gè)問題。

在你的插件的repo中創(chuàng)建ftdetect/potion.vim。在它里面加入下面幾行:

au BufNewFile,BufRead *.pn set filetype=potion

這創(chuàng)建了一個(gè)單行自動命令:一個(gè)設(shè)置.pn文件的filetype為potion的命令。很簡明吧。

注意我們_沒有_像之前經(jīng)常做的那樣使用一個(gè)自動命令組。 Vim自動替你把ftdetect/*.vim文件包裝成自動命令組,所以你不需要操心。

關(guān)閉factorial.pn并重新打開它。現(xiàn)在再執(zhí)行前面的命令:

:set filetype?

這次Vim顯示filetype=potion。當(dāng)Vim啟動時(shí),它加載~/.vim/bundle/potion/ftdetect/potion.vim里的自動命令組, 而當(dāng)它打開factorial.pn時(shí),自動命令起效,設(shè)置filetypepotion。

既然已經(jīng)讓Vim識別了Potion文件,我們可以繼續(xù)前進(jìn)來做些有用的東西了。

練習(xí)

閱讀:help ft。不要擔(dān)心你看不懂里面的內(nèi)容。

閱讀:help setfiletype。

修改Potion插件中的ftdetect/potion.vim。 用setfiletype代替set filetype

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號