確保當它進入和離開子目錄你的makefile是報告如下:
make[1]: Entering directory `/home/username/projects/projectname/subdir1'
[... compile commands ...]
make[1]: Leaving directory `/home/username/projects/projectname/subdir1'
以我的經驗,VIM解析輸出的這部分找到有錯誤的文件的正確路徑。同樣在我幾年前(沮喪)的經歷中,沒有消息vim不知道在哪裏查找錯誤消息引用的文件。
注意,這與遞歸子目錄建築工程甚至,在這個例子中:
make[1]: Entering directory `/home/username/projects/projectname/subdir1'
make[2]: Entering directory `/home/username/projects/projectname/subdir1/blah'
[... compile commands ...]
make[2]: Leaving directory `/home/username/projects/projectname/subdir1/blah'
make[1]: Leaving directory `/home/username/projects/projectname/subdir1'
非常感謝!這工作。我使用我自己的自定義輸出將makefile靜音,以使輸出更清晰。當我將Silent取出後,vim開始按預期工作。 – drewag
@drewag:我同意沉默很好......但是如果你這樣做了,就回來添加一個類似的輸出。那是我之前遇到的那個。幸運的是,當使用vim時,我可以輕鬆地跳過額外的東西來做輸出,並直接進入錯誤,所以我現在對它沒那麼挑剔。 –
我一直在爲此苦苦掙扎,因爲我確信我的遞歸構建系統中出現了問題,因爲我最近也在那裏做了一些更改。感謝這篇文章,我能夠指出問題@Caleb:事實證明,你是絕對正確的,vim將解析這些字符串並跟蹤構建輸出。但是(至少在我的情況下)只有當地區是「正確的」。我對該問題的解決方案是在.env中添加導出LC_ALL = en_CA.UTF-8,我總是有這個問題。不知道這是否是vim中的一個錯誤(當然,vim應該表現出與區域設置無關的相同行爲)。 –