我的目標是像下面這樣:
我有一個像
Who left the dead mouse in the fridge?
一行文字,我想強調的綠色第一the
,只是這一次發生。也就是說,我不想syn match ThisMagicWord "\<the\>"
或任何會過度突出其他the
s的東西。
還有另外一個要求,這就是,如果用戶編輯就行了其他的文字,說
Who on earth left the delicious dead mouse in the fridge?
爲用戶沒有突出顯示將跟蹤字the
,只要編輯一個特定的單詞。
ii。 Kludge
現在,我有一個解決方案。事實上,我爲我的解決方案感到自豪,因爲想想起來很棘手。但是,無論如何,想象力都不是一個好的解決方案。
事實證明,Unicode字符Combining Grapheme Joiner實際上在Vim中是無效的。它不產生字形,也不佔用寬度。這是我發現的唯一這樣的角色。所以我要做的就是,我偷偷摸摸地在問題編輯該行是
Who left the<CGJ> dead mouse in the fridge?
,然後定義規則
syn match ThisMagicWord "the<CGJ>"
我將在BufWritePre
和BufWritePost
另外觸發剝掉CGJs出來的文件在磁盤上。
iii。該問題
是否有Vim的比其他CGJ無操作字符(或產生一個辦法)?理想情況下,由於Vim正則表達式處理組合字符的方式,因爲
the<CGJ>
將不匹配/the
的搜索。有沒有更好的方法來獲得我想要的行爲?
** **爲什麼你需要這個可移動的單實例亮點?背後是什麼原因/用例? –
@IngoKarkat爲了激怒你,Ingo:p。實際上,我正在使用輸出偏移範圍的外部程序突出顯示信息。重複運行(> 30秒運行時間)太昂貴,所以我需要結果在用戶編輯時保持一段時間。 – Owen
但我可以想象其他用途 - 實際上它們中的很多(標記強調句法元素,顏色編碼變量以更好地記住它們,半富文本格式)。 – Owen