2010-03-12 65 views
12

執行時:從vim make,make完成後自動跳轉到有錯誤的文件。是否有辦法避免這種vim:make自動跳轉到錯誤的第一個文件

編輯

這是用例我想要實現 我想:讓執行,然後快捷列表打開但我的工作當前文件不應該切換到在一個與後錯誤

使用默認設置:使執行[快速打開和當前文件也改變

回答

13

您可以運行:make! | copen,它應該將光標放在quickfix列表中,而不是更改當前緩衝區。將command Mymake make! | copen放入.vimrc中,您可以更輕鬆地完成此操作,因此您只需運行:Mymake即可完成此操作。

要注意,從quickfix列表中選擇錯誤時,他們將滾動與該文件已經打開的緩衝區,而不是如果可能改變當前窗口,你可以在新窗口中與<C-w> Enter打開文件。

+0

我很驚訝這被接受 - 當然'copen'激活了錯誤列表,如果':make!'改變了打開的文件,它仍然會改變。 – Cascabel 2010-03-23 14:11:55

+1

@Jefromi我不知道你的意思。你自己的回答說,':make!'確實不會改變打開的文件。 – 2012-11-08 00:22:39

21

從文檔:

 
    7. If [!] is not given the first error is jumped to. 

所以,只需調用它作爲:make!

+0

即使使用此選項,它跳轉到文件。 – 2010-03-15 15:29:15

+0

我剛剛在vim 7.1上使用':make!'進行了測試,沒有跳到第一個錯誤,我仍然在打開文件的同一個地方 - 錯誤是在不同的文件中 – stefanB 2010-03-23 05:27:18

+0

有沒有一些配置方法它扭轉了正常的行爲?所以:make做什麼:make!通常會這樣做,反之亦然?理想情況下,通過各種quickfix函數,如:grep,:Ack,:Ag。 – William 2012-12-05 23:58:47

1

它可能不是最乾淨的解決方案,但將errorformat設置爲空字符串應該可以做到這一點,即。

:set errorformat="" 

這應該保持它相匹配的編譯器錯誤的字符串。

+0

這給了我錯誤消息「E378:'errorformat'不包含模式」。但是,將它設置爲不匹配(我現在使用「!」作爲快速測試)似乎工作。 – 2014-06-04 08:18:02

相關問題