2013-12-15 69 views
7

我有一個C++項目,我使用ninja和clang ++進行編譯,並希望在編譯過程中出現錯誤。目前,當我設置makeprg=ninja,然後運行:make時,忍者生成的所有輸出只是出現在quickfix窗口中,並且不能用於跳轉到相應的文件/行等。vim中使用ninja和clang時的Quickfix列表++

我不是在尋找功能由syntastic(我已經使用)提供,但我也希望看到項目中其他文件的錯誤,類似於IDE提供的錯誤。

如果忍者不能(很容易)完成,使用make的解決方案也是受歡迎的(該項目使用cmake,所以兩者都有可能),但如果可能的話,我想留在忍者身邊。

回答

2

所有忍者產生的輸出僅僅出現在quickfix窗口,而不能用來跳轉

這聽起來像Vim的無法解析出錯誤的位置信息,因爲適當的'errorformat'不是招沒有設置。

搜索周圍,也許有人已經寫了這樣的。否則,您需要編寫自己的編譯器插件,然後使用:compiler ninja而不是:set makeprg=ninja。請參閱:help write-compiler-plugin

+0

是的,這看起來像一個起點。但是我對使用'ninja'作爲'':''編譯器'很猶豫,因爲它只是make程序,而'clang ++'是實際的編譯器。但是,看一下'compiler/gcc.vim'文件,它似乎也使用了'make'的輸出定製的'errorformat'。 – Futile