我正在編寫一個語法文件來匹配日誌格式(基本上是基於列的;認爲syslog是一個類似的例子),我試圖爲列設置一種類型的繼承。VIM中的語法高亮顯示的多個匹配
我對此有兩個主要目標。首先,我想說第3列是「組件」字段(假設它標有標題;它也可以位於固定位置),並將背景設置爲灰色。然後我想說,組件「foo」獲得紅色的前景色,組件「bar」獲得綠色的前景色,但它們應該繼承「組件」列的背景色。在這種情況下,該字段應該確實有兩個語法匹配;這也很容易隱藏整個色譜柱(a la Toggling the concealed attribute for a syntax highlight in VIM)
其次,有一個級別的字段;我想將整條線的背景設置爲紅色的關鍵級別消息,但前景應該繼續通過正常突出顯示(組件,源等;我省去了大部分其他要求)來設置。
從我在vim文檔中看到的情況來看,這似乎不可行。我錯過了什麼嗎?或者,任何人都可以提出一個很好的解決方法?
謝謝
我很害怕這個。我可以編寫所有組合的代,而不是將它們寫出來......對於我如何能夠實現隱藏效果的任何建議?我總是可以有一些特殊的值遍歷所有可能的類型,但我希望通過這種方式讓用戶查看synID並知道隱藏的內容。 – Mikeage 2013-05-07 09:37:07
鏈接隱藏解決方案在外部語法上使用時看起來像一個很好的破解,但在您自己的語法中(尤其是如果您必須腳本化定義,無論如何),我寧願使用一個配置變量來確定哪個語法組獲得'隱藏'屬性。要改變,你必須改變這個變量,再次改變':syntax on'。 – 2013-05-07 10:01:32
現在,我有用於隱藏公共列的地圖,所以它可以以任何方式工作;然而,我有這個想法,讓用戶調用ConcealCurrentGroup()並讓它自動隱藏光標所在的任何列。好吧。 – Mikeage 2013-05-07 10:54:18