王垠emacs 一年成为Emacs高手(像神一样使用编辑器)
这个差距说到底是后端语法解析引擎的问题.坦率地说通常人们问我这个问题都是以微软的Visual Studio和Eclipse作为参照对象的.
就C 来说目前有使用苹果公司的clang的方案,效果还不错.就Java来说,有使用eclipse做为后端引擎的方案.具体使用什么emacs插件来调用这些引擎有很多选择,不展开了.
实战中,我通常就是使用ctags或者etags作为后端引擎,因其所有语言通吃.虽然解析效果差一点,但是通过我遵循恰当的命名规范,对编程效率没有什么影响.
使用ctags或者etags还可以帮助菜鸟程序员改掉一个很严重的毛病.菜鸟因为缺乏自信心和经验,所以变量和函数名的命名通常都过于通用,给自己是架构师在写一个大型的通用Framework的幻觉.这对于真实的产品研发来说是一个很严重的问题,想象你要修改某个接口的所有调用,定义,文档和测试案例,并且这个接口在多个语言中都有使用.
这个接口如果有一个通用的名字如list,是会把维护人员气死的(我曾经碰到过一朵奇葩,他还有喜把变量名和函数名叫完全一样名字的"好习惯").叫ListMySpecificService则好的多.使用ctags/etags这类比较弱的解析引擎就会逼你起一个不那么普通的名字.