尝试使用Emacs

Emacs的强大毋庸置疑,但是要把它折腾到好用是件成本很高的事情。

现在由于工作需要要同时浏览c++、java代码,要在linux、window、远程、本地、IDE,shell间来回切换,太过麻烦,于是开始强迫自己用Emacs处理这些问题。

 

刚开始用Emacs的时候的确很变扭,没有定制过的原始Emacs确实不怎么好用,尤其很难让用惯了IDE和window编辑器的人满意,不过当熬过这个阶段,你很快就能体会到它的优势和在很多事情上的便捷。

下面看看Emacs在开发中的表现:

 

1.文本和命令编辑过程中自动补完路径

在编写文档、脚本和代码过程中很多时候都需要填写冗长的路径。

在文本编辑模式和命令编辑过程中都可以利用autoComplete插件来提供自动路径完成。

尝试使用Emacs

 

2.文件夹操作

在有大量文件的文件夹中使用命令行是更简便的方式,可以很容易用正则来定位、打开、删除文件和文件夹

尝试使用Emacs

 

3.修改定制Emacs

要将Emacs打造顺手,有时需要查阅Emacs一些函数、变量定义,甚至添加修改功能实现的lisp脚本,那么对于编辑lisp的操作就很重要,下图是在ECB下的lisp编辑

尝试使用Emacs

 

在lips编辑中的autoComplete:

尝试使用Emacs

 

4.Emacs进行c,c++开发

这是Emacs开发中最强的领域,如果搭配好,结合GDB,基本上能打造成集VS,Source Insight,windbg于一体的开发环境。

 

ECB下阅读和编辑代码:

尝试使用Emacs

 

 

用Emacs集成环境下的GDB调试非常方便,能同时从不同方面观测程序:

尝试使用Emacs

 

在GDB环境下编译:

尝试使用Emacs

 

C++自动完成是比较麻烦的部分,这里使用autoComplete+clang的方案,clang的出现很好解决了C++代码的语法解析准确性和解析速度的问题,并且在Linux和window下都能通用。

stl的自动完成:

尝试使用Emacs

 

boost中智能指针的智能补全:

尝试使用Emacs

 

可以看到Emacs可以很好完成开发中的所有事情,但是适应和改造它确实是件痛苦的过程。

不过一旦跨过这个阶段,就会非常习惯和依赖它,因为里面每种功能都很容易用在其他模式下。它支持的类型非常广泛,包括各种代码、脚本、网页编辑、shell、telnet、远程ftp编辑、版本控制、文件比较,再结合autoComplete和yasnippet模板能极大提高文字、代码、脚本编辑和shell调用的效率。

Emacs在编辑上的便捷性不是用文字和图片能表述的,需要自己去亲身体会,尽管开头不容易,但学会Emacs将是一项长期高回报的投资。