背景
最近手指不堪emacs的折磨,且确实在emacs上的开发效率不高。尤其是做web开发与c++底层服务开发同时进行时。
尝试过切换到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也存在一个相当大的优点,可集成shell。sublime text3
这个编辑器没怎么体验,不过直觉上不喜欢。atom
万般皆可忍受,但是工程的文件一多就卡,这个是不能忍受的。这是atom带给我最不好的体验。vim
这个说实话,学习成本过高(有过emacs经验,不想也不适合再花大量的时间到编辑器上)。而且,毕竟社区的活跃度不如其他的几个(除了emacs)visual studio code
目前来说,缺点也是有的(不符合我的使用习惯),工程不可并行打开,需要切换工程。简而言之,是基于工程的editor。当然瑕不掩瑜,visual code的 intelisence 还是相当符合我的口味的。debug模式更是如此。
另外,让我坚定的使用visual studio code的更重要的原因,此乃微软出品。相信用过visual studio套件的都对于“宇宙第一IDE”感触颇深。相信这块产品也会越走越好。
另外,visual studio code的原生快捷键是需要F区的。很不幸,老夫的键盘是没有F区的(HHKB...),而目前找到的keybinding是只读文件不允许修改,需要在日后的使用中找到更改keybinding的方式。
C++ 支持
对于c++的支持,目前只需要能够跳转到定义,找到函数的所有引用,以及函数的声明就可满足我的需求。此处安装了c++ intelisence插件。参照官方的说明,即可非常快速的使用c++ intelisence。
注:基于GNU global。关于GNU global请参考前文或者自行百度。
在visual studio market中,还提供了c++ snippet。众所周知snippet能够大大减轻useless typing。
目前还缺少c++的debug,linter插件。debug可以方便的在ide中打断点进行调试,linter方便对同一工程制定编码规范。希望在日后的市场中能够丰富起来。
工程类工具
yeoman
从已知的信息中来看,yeoman是个代码,工程生成器。能够能生对应的node.js, express.js, asp.net的工程。对于cpp, python等工程的生成尚未研究。希望能够自定义生成规则(对于类,函数,文件而言)。vscode-todo
因为经常跨工程写代码,所以有些函数(方法)仅仅只是留了一个调用的协议(接口),内部实现为TODO。而TODO多了之后,怎么找回是个难题。这个插件很好的帮我解决了这个问题。