2014-03-28 46 views
0

我有一個C++工程,*.cpp文件位於c:\project。我還使用一棵樹僞外的構建系統,它採用c:\project\build目錄爲每個可執行,目標文件,自動生成的文件輸出目錄等vim的Quickfix窗口的替代規則

通常情況下,我發動vim當我PWDc:\project

$ vim <file> 

當我使用:make命令,我的構建工具的推出和開始編制該項目。在出現任何錯誤的情況下,我會在Quickfix窗口(:cope)中收到通常的錯誤列表。問題是「我的」構建工具(順便說一下,它是waf工具)是從c:\project\build目錄執行的,而不是c:\project,因此對源文件的任何引用都將相對於c:\project\build目錄打印出來。這意味着,此文件:c:\project\main.cpp,在一個錯誤的情況下,我會得到錯誤信息,如:

..\main.cpp:9:0: <errormessage> 

Vim的g++解析器採用此錯誤路線,從中提取(..\main.cpp)的文件,但它贏得了」 t點擊輸入後打開它,因爲vim的會話的密碼是c:\project。點擊進入後,vim嘗試打開c:\main.cpp

我只能從c:\project\build目錄啓動vim和它的工作,但是這又導致用vim插件,像CtrlP的問題,所以我想從項目的根開始Vim會話,不建的根。

vim是否可以將..\替換爲空字符串?我要求similar option that gdb has(源路徑替換)。

回答

1

在發佈問題後,我實際上設法找到解決方案。我需要更多地練習橡皮鴨調試。

我已經通過創建一個構建腳本(m.cmd)解決了這個問題:

@echo off 
waf 2>&1 | sed "s#^..\\##g" 

,我並設置:set makeprg=m.cmd

現在它按預期工作。