背景
最近手指不堪emacs的折磨,且確實在emacs上的開發(fā)效率不高。尤其是做web開發(fā)與c++底層服務開發(fā)同時進行時。
嘗試過切換到sublime,不過說實話,sublime確實不是我的菜,第一眼就比較反感了。說不上反感的理由,只能說是比較感性的一個選擇。
然后就問了自己一個問題,我需要的是什么樣的一個editor 或者 IDE。
答案是顯而易見的:支持多語言(c, c++, python, node.js, javascript, html, golang, erlang),需要可調試(掛載gdb),有doxygen插件,可以跳轉到定義以及查找所有引用。
比較了sublime, atom, visual studio code, vim:
| 編輯器 | 多語言支持 | 可調試 | doxygen插件 | 代碼跳轉 | 自動補全 |
|---|---|---|---|---|---|
| emacs | 支持 | 支持 | 支持 | 支持(GNU global) | 支持(auto-completion)[word] |
| sublime text3 | 支持 | 支持 | 支持 | 未知 | 支持[word] |
| atom | 支持 | 支持 | 支持 | 未知 | 支持[word] |
| vim | 支持 | 未知 | 支持 | 支持(ctags) | 支持[word] |
| visual studio code | 支持 | 支持 | 支持 | 支持[intelisence] | 支持[intelisence\word] |
綜合來說:
emacs
存在快捷鍵不方便(手指負擔過重)的缺點,但emacs也存在一個相當大的優(yōu)點,可集成shell。sublime text3
這個編輯器沒怎么體驗,不過直覺上不喜歡。atom
萬般皆可忍受,但是工程的文件一多就卡,這個是不能忍受的。這是atom帶給我最不好的體驗。vim
這個說實話,學習成本過高(有過emacs經驗,不想也不適合再花大量的時間到編輯器上)。而且,畢竟社區(qū)的活躍度不如其他的幾個(除了emacs)visual studio code
目前來說,缺點也是有的(不符合我的使用習慣),工程不可并行打開,需要切換工程。簡而言之,是基于工程的editor。當然瑕不掩瑜,visual code的 intelisence 還是相當符合我的口味的。debug模式更是如此。
另外,讓我堅定的使用visual studio code的更重要的原因,此乃微軟出品。相信用過visual studio套件的都對于“宇宙第一IDE”感觸頗深。相信這塊產品也會越走越好。
另外,visual studio code的原生快捷鍵是需要F區(qū)的。很不幸,老夫的鍵盤是沒有F區(qū)的(HHKB...),而目前找到的keybinding是只讀文件不允許修改,需要在日后的使用中找到更改keybinding的方式。
C++ 支持
對于c++的支持,目前只需要能夠跳轉到定義,找到函數的所有引用,以及函數的聲明就可滿足我的需求。此處安裝了c++ intelisence插件。參照官方的說明,即可非??焖俚氖褂胏++ intelisence。
注:基于GNU global。關于GNU global請參考前文或者自行百度。
在visual studio market中,還提供了c++ snippet。眾所周知snippet能夠大大減輕useless typing。
目前還缺少c++的debug,linter插件。debug可以方便的在ide中打斷點進行調試,linter方便對同一工程制定編碼規(guī)范。希望在日后的市場中能夠豐富起來。
工程類工具
yeoman
從已知的信息中來看,yeoman是個代碼,工程生成器。能夠能生對應的node.js, express.js, asp.net的工程。對于cpp, python等工程的生成尚未研究。希望能夠自定義生成規(guī)則(對于類,函數,文件而言)。vscode-todo
因為經??绻こ虒懘a,所以有些函數(方法)僅僅只是留了一個調用的協(xié)議(接口),內部實現為TODO。而TODO多了之后,怎么找回是個難題。這個插件很好的幫我解決了這個問題。