2009年(49)
分类: C/C++
2009-07-11 11:28:43
EMACS 使用技巧
一.使用自定义宏
可以自定义键盘宏,这样可以将一些常用的语句绑定,以后可以直接输出,不必每次都繁琐的输入类似的语句。
使用方法:
首先选择开始定义一个键盘宏 C-x ( ,然后输入你想定义的语句。
输入语句完成之后,选择结束一个键盘宏定义 C-x )
如果你只想本次使用,那么可以直接通过 C-x e来执行
如果你想以后都用到这个宏,那么就给这个宏命名M-x name-last-kbd-macro
最后一步,使用M-x insert-kbd-macro,这个时候文本缓冲区中会出现这个宏的lisp,将这个lisp拷贝到你emacs的配置文档.emacs中,这样就可以在以后启动emacs的时候都使用这个宏了。简单吧:)
二.使用cscope结合emacs来查看代码
1. 安装 cscope,
到这里下载cscope, 最新版本为 15.6。
如果你使用 debian 或者 ubuntu,直接 sudo apt-get install cscope就可以了
2. 安装 xcscope.el
把 cscope 附带的 xcscope.el 文件放到你的 emacs的 load-path 下,在 ~/.emacs 中增加:
(require 'xcscope)
3. 生成 project 文件列表,可以用如下命令完成。例如kernel代码,找出所以 .h, .c, .S文件
find -type f | grep -E '\.[chS]$' > cscope.files
4. 生成 cscope 索引文件, -k 专门用于生成 linux kernel 源码的索引
cscope -b -k
注:
C-c s a 设定初始化的目录,一般是你代码的根目录
C-s s I 对目录中的相关文件建立列表并进行索引
使用上面这两部也可以起到3,4所起到的目的,而且简单,呵呵
5. 运行 emacs,以下是一些常用的按键
C-c s C-h 查看所有的 cscope 相关的按键
C-c s a 设定索引文件所在目录
C-c s c 查找调用该函数的地方
C-c s g 查找该符号的全局定义
C-c s f 查找该符号对应的文件
...
如果习惯了Emacs的这种按键,感觉使用起来还是挺方便的,感兴趣的可以自己体会。
三.关于设置字体
(set-default-font "-adobe-courier-medium-r-normal--14-100-100-100-m-90-iso10646-1")
或者只写:
(set-default-font "10x20")
前一种设置的字体,没有那么粗,看起来好看一些,设置了以后emacs启动有减慢,不知道怎么搞的。
Emacs的详细字体设置参见
四.设定缩进
emacs的缩进方式和其它编辑器有些不同,text-mode下不能tab,只能用C-q tab才行。
c-mode或cc-mode下缩进只有2格,这个当然不符合大多数人的习惯,如果要设为4:
(add-hook 'c-mode-hook
'(lambda ()
(c-set-style "Stroustrup")))
如果要设成8:
options->Customize Emacs->Browse Customization Group->Programming->Language->C->C-Basic-offset,设成8就行,保存
五.Emacs一些值得学习的操作方式(只列出我现在还不怎么熟悉,或者不会的~见谅)
参见GNU Emacs 21 Reference Card
剪切删除:
剪切光标所在到行头的文字:M
剪切光标所在到下一个char位置中间的文字:M-z char
Yank出之前剪切的文字的内容(不是最后一个,是最后一个yank之前的):M-y
删除两个句子之间的空格:M-\
标记:
标记除了用C-SPEC外,还可以用C-@。(在VMWARE里面C-SPEC是用来解除锁定的,而且C-SPEC还与输入法冲突,所以一般要用C-@来进行标记)
查询替换:
M-%,可以用来查询替换键入的内容,里面用!就可以全部替换