簡體   English   中英

使用make項目調用多個編譯器的vim errorformat錯誤

[英]error with vim errorformat using make project invoking multiple compilers

我有一個make項目,使用各種后端創建二進制文件…→C,C ++,csharp,java…在Linux上使用mono csharp編譯器,gcc等…

  1. 如果我通過打開XXX.cs文件選擇一個后端(例如csharp),則make-output-error解析器正常工作,這意味着錯誤輸出已正確解析,我可以立即跳轉到錯誤...

  2. 如果我選擇了頂級make…(在頂級目錄上沒有文件的情況下打開vim),那么make-output-error解析器將無法正常工作。

我發現vim errorformat變量在1和2之間更改。

現在是我的問題:在頂層make運行期間,如何告訴vim識別C,C ++,CSharp…和Java的錯誤輸出

無論您擁有C#的任何文件類型插件,都可能會更改:help 'errorformat'的值以與C#編譯器一起使用,而在運行頂層make時卻保留默認值,我假設它會按原樣輸出錯誤,過濾。

為了使Vim正確解釋所有編譯器的潛在混合輸出,您可以:

  • errorformat設置為適用於所有這些格式的值,
  • 或在構建過程中添加一個步驟,以將每種本機輸出格式統一為一種Vim可以輕松解釋的單一格式。

第一種選擇是,找到每個編譯器使用的errorformat值,並在啟動時將它們設置為默認值:

set errorformat^=<efm for c#>
set errorformat^=<efm for cpp>
...

第二種選擇,我多年來一直在考慮編寫一個可以做到這一點的程序,但是卻沒有時間寫README.md 如果這樣的事情不存在,恐怕您將不得不自己sedawk

暫無
暫無

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

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