簡體   English   中英

Vim 錯誤格式:如何忽略一行但使其可見?

[英]Vim errorformat: how to ignore a line but leave it visible?

我知道如何讓 Vim 僅顯示快速修復 window 中的錯誤消息,並隱藏其他所有內容,但這並不是我想要的。

我希望快速修復 window 有我完整的構建日志,作為上下文,但只有實際的錯誤消息突出顯示並為:cnext啟用。

我幾乎可以明白:沒有模式匹配時的默認行為是做正確的事情; vim 在這些行之前帶有雙杠,這很好:

|| cc -c myfile.c -o myfile.o
myfile.c|123| error: ......

問題是當我有一條與錯誤模式匹配的行時,但不應該(基本上任何帶有隨機冒號的行)。 我可以添加一個%-G模式來忽略它,但這也會將它隱藏起來,這沒有幫助。

例如-DVAR="1:2"可能會被標記為如下錯誤:

cc -DVAR="1 |2| " -c myfile.c -o myfile.o
myfile.c|123| error: ......

...在這種情況下,我希望它隱藏cc行,但我確實想忽略它以進行錯誤處理。

我如何編寫一個異常模式,它只是說“假裝沒有匹配的東西並做默認的雙欄操作”?

您可能需要在errorformat的開頭放置一個格式字符串,它與cc匹配(並排除所有其他錯誤),但也讓整個字符串(包括cc )被視為消息%m

如果你說cc%m那么cc將不是%m的一部分。 只有cc之后的字符才會成為%m的一部分。

一種解決方案是使用零寬度前瞻正則表達式,如下所述: Vim errorformat: include part of expression in message string

'errorformat'中錯誤字符串的順序非常重要。 您會希望新的錯誤字符串早於可能以錯誤方式匹配此字符串的任何其他錯誤字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM