[vim ] errormarker + AsyncCommand ?

看板Editor (編輯器(vim/emacs))作者 (眠月)時間13年前 (2011/11/01 21:52), 編輯推噓4(4015)
留言19則, 2人參與, 最新討論串1/1
errormarker http://www.vim.org/scripts/script.php?script_id=1861 可以把 compile error 用 highlight 標示出來,而且 gvim 還附有 tooltip 圖示 http://mh21.piware.de/vim-error-markers-doxygen.png
AsyncCommand http://www.vim.org/scripts/script.php?script_id=3431 可以在背景執行動作,執行完還可以把結果送回來 其中有一個 AsyncMake,可以在背景 make make 結束以後錯誤會被讀入到 QuickFixList ============================================================================= 我現在希望把這兩個東西混合在一起用, 這樣比方說我只要按一下 <F5> 背景就在 make, 而且 make 完以後,錯誤也會自動被標示出來。 我把兩個 script 都裝起來了,不過卻沒有效果, 我爬了一下原始碼,發現 errormarker 是去 hook QuickFixCmd event, augroup errormarker autocmd QuickFixCmdPost make call <SID>SetErrorMarkers() augroup END 然後呼叫 SetErrorMarkers() 函數, 但是 AsyncMake 好像不會觸發 QuickFixCmd event, 所以 errormarker 就沒有呼叫到 SetErrorMarkers() 函數, 我嘗試亂改了一下 script,不過沒有任何進展,主要也是因為我不太知道怎麼改, 不知道有沒有前輩願意投入一點時間嘗試看看? ============================================================================= 如果這邊能突破的話, 接下來我打算加上在背景每隔固定時間(或每次存檔)AsyncMake 一次的功能, 這樣就可以持續的讓畫面上顯示出錯誤的地方。 如果能作到的話,這樣會比 Eclipse CDT 的語意分析還要好, 因為 Eclipse CDT 的語意分析準確度並不是 100%, 尤其是在 template 頻繁使用的狀況下。 -- To iterate is human, to recurse, divine. 遞迴只應天上有, 凡人該當用迴圈.   L. Peter Deutsch -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 182.235.170.158

11/02 12:19, , 1F
11/02 12:19, 1F

11/02 12:20, , 2F
超讚的XD現在每次存檔,vim就會自動紅字標出錯誤
11/02 12:20, 2F

11/02 12:20, , 3F
有空再寫一個中文版的 @@
11/02 12:20, 3F

11/02 15:14, , 4F
感謝大神分享,只好收藏了!
11/02 15:14, 4F

11/05 02:18, , 5F
寫好了 @@ 部落格 http://tinyurl.com/4336a23
11/05 02:18, 5F

11/05 02:18, , 6F
如果有發現蝦米問題請好心告訴我謝謝
11/05 02:18, 6F

11/05 05:02, , 7F
不好意思,不知道是不是我哪裡做錯了,存檔會有錯誤訊息
11/05 05:02, 7F

11/05 05:05, , 8F
Error detected while processing <SNR>16_AsyncMake:
11/05 05:05, 8F

11/05 05:06, , 9F
line 8:
11/05 05:06, 9F

11/05 05:06, , 10F
E117: Unknown function: asynchandler#quickfix
11/05 05:06, 10F

11/05 05:06, , 11F
E116: Invalid arguments for function asynccommand#run
11/05 05:06, 11F

11/05 05:08, , 12F
但是如果我手動執行 :make 的話,就可以自動標示出錯誤~
11/05 05:08, 12F

11/06 01:49, , 13F
會不會是vim版本的問題?我好像曾經遇過...
11/06 01:49, 13F

11/06 01:50, , 14F
更新到最新版的 7.3 試試
11/06 01:50, 14F

11/06 05:19, , 15F
我的版本就是 7.3 的 XD,我再研究看看,感謝大大!
11/06 05:19, 15F

11/06 17:29, , 16F
我之前裝 vim 不行,後來改裝 vim-gtk 就可以了..
11/06 17:29, 16F

11/06 17:29, , 17F
我也不知道為什麼 XD
11/06 17:29, 17F

11/07 02:45, , 18F
裝完 vim-gtk 之後,用 gvim 成功了,好棒的功能,謝謝!
11/07 02:45, 18F

11/07 23:31, , 19F
恭喜恭喜 XD
11/07 23:31, 19F
文章代碼(AID): #1Eh_cAKg (Editor)
文章代碼(AID): #1Eh_cAKg (Editor)