Vimscript 更高級的語法高亮

2018-02-24 16:03 更新

我們甚至可以為Vim里面的語法高亮另開一本書了。

我們將在此講解它最后的重要內(nèi)容,然后繼續(xù)講別的東西。 如果你想要學到更多,去讀:help syntax并閱讀別人寫的syntax文件。

高亮字符串

Potion,一如大多數(shù)編程語言,支持諸如"Hello,world!"的字符串字面量。 我們應該把這些高亮成字符串。為此我們將使用syntax region命令。 在你的Potion syntax文件中加入下面內(nèi)容:

syntax region potionString start=/\v"/ skip=/\v\\./ end=/\v"/
highlight link potionString String

關閉并重新打開你的factorial.pn,你將看到文件結(jié)尾的字符串被高亮了!

最后一行應該很熟了。如果你不懂,重讀前兩章。

第一行用一個"region"添加一個語法類型分組。 區(qū)域(Regions)有一個"start"模式和一個"end"模式來指定開頭和結(jié)束的位置。 這里,一個Potion字符串從一個雙引號開始,到另一個雙引號結(jié)束。

syntax region的"skip"參數(shù)允許我們處理轉(zhuǎn)義字符串,比如?"She said: \"Vimscript is tricky, but useful\"!"。

如果不提供skip參數(shù),Vim將在Vimscript之前的"停止匹配字符串,這不是我們想要的!

簡明扼要地說,syntax region中的skip參數(shù)告訴Vim: "一旦你開始匹配這個區(qū)域,我希望你忽略skip匹配的內(nèi)容,即使它會被當作區(qū)域結(jié)束的標志"。

花上幾分鐘去想透徹。如果遇到的是"foo \\" bar"會怎樣?那會是正確的行為嗎? 那_總是_正確的行為嗎?放下本書,花上幾分鐘來認真想一想

練習

給單引號字符串加上語法高亮。

閱讀:help syn-region.

閱讀:help syn-region將比閱讀本章花費更多的時間。給自己倒杯飲料,這是你應得的!

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號