以前不知道為何 ale 中的 gcc 一直不能用,所以用 clang 就解決
但是本篇要來解決 gcc 的問題 !!!!
由於都沒有報錯誤訊息所以主要能夠排除是 ale 的問題
首先關於 linter 的設定,cpp 改成使用 g++
不要因為 cpp 後面的支援寫 gcc 就用 gcc
let g:ale_linters = { \ 'cpp': ['g++'] \}
產生一個有錯的 .cpp 檔
$ vim t.cpp
#include#include #include using namespace std; int main() { here return 0; }
儲存後接著在 vim 裡輸入下方指令打開 ale 的資訊
:ALEInfo
移到最下面,如下圖
發現其實正常運作有指出哪裡錯誤
然後也發現為何會沒有東西了,就是中文 !!!!
ale 偵測不到 "錯誤:" 等字樣
所以原來是 g++ 翻譯成中文惹的禍@@
所以就來第2部份,把 gcc 輸出改成英文
開啟以下路徑
/usr/share/locale/zh_TW/LC_MESSAGES/
找到 gcc.mo
右鍵 > Root Actions > Move/Rename
後面加上 .bak 的副檔名,確定後輸入 root 密碼
重新開啟剛剛的 t.cpp 就會發現有標示錯誤了
再次打開 :ALEInfo 查看
g++ 的訊息變成英文了OuO
參考資料:
gcc g++ 中文錯誤訊息換回英文
沒有留言:
張貼留言