发信人: hhuu (归来,从某个地方), 信区: Linux
标 题: Emacs的日常生活 5
发信站: BBS 水木清华站 (Fri May 9 00:45:43 2003), 转信
*4 用Emacs写程序
Emacs号称是一个强大的IDE,可是往往被人误解。常常有人说,
让VS.net的热键设置和Emacs一样,VS.net就算可以模仿Emacs了,他是在
逗你玩呢。
还是从写还是吧。
基本上那些常见的编程语言,Emacs都有支持。我们现在说的支持,基
本上就限于有一种对应于这种语言的major mode。最常见的就是cc-mode了,
甚至还专门拿出来,在sourceforge上做了一个项目的说。cc-mode可以不
错的支持各种语法上有些类似c的语言,甚至于idl。
不过,cc-mode不支持c#。google上能搜到一些给Emacs用的c# major
mode,我觉得
http://davh.dk/script上的那个不错;别的大都需要对Emacs自带的cc-mode做替换,让人觉得很不爽。前面提到的那个,在
Emacs 21.3.xx上可能需要作一点小的修改,大概621行左右的位置,
(c-common-init)改成(c-common-init 'c-mode),大致如此。
Python mode需要到
http://www.python.org上去下载。 有了这些以后,基本上不愁写程序的时候的语法加亮的问题了。(其
实本来也没什么好愁的,毕竟这是最基本的要求)。
有人偏爱ue那样,把当前行高亮的样子,那就先打开M-x hl-line-mode。
有人看到ThisIsASimpleVarInJava就觉得郁闷,那就打开M-x
glasses-mode。
关于补全,上次提到过,hippie-expand加上semantic是现在最好的选
择了。 dabbrev-expand完全不懂语义的,常常给扩展出一些莫名其妙的
内容来,semantic就不一样了。它至少是懂的语义的,expand的结果看起
来就合理的多,有的时候甚至能够认出某一个变量的类型来,让我激动了
老半天,当然,只是有时候阿。;-( semantic可以从
sf.net/projects/cedet上下载。别的还有一些东西,比如jde或者ecb都是
建立在semantic的基础上的,写java的话,也可以用jde,比elipse之类当
然是要轻的多了。ecb偶没用过。
关于宏,c语言最麻烦的可能是宏了。常常是面对嵌套了若干层的宏,
看不出一个所以然来。 这个时候,可以直接用C-c C-e,对已经选定的区
域做预处理,预处理的结果会显是在另外的buffer里面。这项工作缺省使
用cpp来做,不过只要编译器支持从标注输入读入代码,好像都可以正常工
作。另外有一些简单的宏,比如用来做平台选择的,直接用
hide-ifdef-mode就可以摆平,都免去了调用预处理器的麻烦。
关于代码隐藏,其实偶一般只用一个C-c @ C-c,hs-troggle-hiding。
基本上能够满足要求了。 不过用之前记得先打开M-x hs-minor-mode。
关于文件,有一个很常用的命令,ff-find-related-file。在编辑某
一个程序文件的时候,想打开所有包含的头文件,用
ff-find-related-file就可以了。有时候可能需要调整一个参数,自己用
C-h f ff-........看看就搞定了。
关于查看帮助,有的选的有info和woman。woman可以用来看man能查到的帮助。
一般可以把下面这点代码绑定到f1上。
(global-set-key [(f1)] (lambda()
(interactive)
(let ((woman-topic-at-point t))
(woman))))
也可以用C-h C-i在info里面查看函数。这些都很简单了。如果你还不
满足,那就直接google吧,可以考虑利用browser-url。 ;-)
--
C programmers think memory management is too important to
be left to the computer.
Lisp programmers think memory management is too important
to be left to the user.
※ 来源:·BBS 水木清华站 smth.org·[FROM: 211.150.210.145]