Emacs使用指南
时间:2006-09-21 来源:jaychoufan_007
Emacs使用指南
Emacs大概是Linux下最强大的文本编辑工具了.本篇不是emacs的使用手册,而是让初学者能够快速地开始用emacs进行简单的文本编辑和处理工作.由于Linux的许多设置工作都必须编辑配置文件才能完成,因此掌握emacs的使用是非常重要的.
这篇文章只介绍emacs的简单应用,因此不会涉及那些复杂的emacs技巧,但是,本文会告诉你如何进行一般的编辑工作.
在X Window下执行命令emacs & 会启动xemacs,如果你确定不想使用图形界面的xemacs,那么执行emacs-nw或者emacs-nox会使用文本界面的emacs.但是你需要注意的是,文本界面的emacs往往会丢失某些必要的热键,对此,Linux专门提供了一个shell程序,称为jed,执行jed就可以使用这个编辑程序,它与emacs几乎是一样的,但是对于缺少的若干功能使用菜单选择.
首先按照emacs的习惯,我们将键盘上的Alt键称为Meta键,以后将ctrl + X 之类的组合键记为C-X,而Alt+X记为M-X,emacs的各种组合键除了一些标点以外都不区分大小写emacs/xemacs将所有被编辑的文件看成一张白纸,称为buffer,编辑是在buffer上完成的.
第一步要选择被编辑的文件,emacs用热键C-X C-F(连续按ctrl X ctrl F)打开被编辑的文件.注意打开文件总是在当前buffer里打开的.如果你想在另一个窗口里打开某个文件,首先必需分割当前窗口:按下C-X 2,当前窗口将被分割成两个,然后就可以在某个窗口里打开新文件了,编辑中,可以用C-X o组合键在窗口之间切换.这种分割有时会使窗口看上去很混乱,特别是emacs的帮助功能也会弹出一些小窗口,解决的办法是C-X 0关闭当前(光标所在)窗口,C-X 1则将当前窗口极大化(充满屏幕).
编辑结束,可以按C-X C-S存盘,C-X C-C退出emacs.
一般情况下,最常用的功能是在文本中移动光标,可以用C-P上移,C-N下移,C-B后退,C-F前进,当然一般情况下也可以用光标键完成, 但是在某些情况中,仍然要使用这种古老的 UNIX组合键. 类似的组合键还有C-V和M-V, 对应于PageUp和PageDown. 比较有用的是组合键C-A和C-E,可以快速移动到行首和行尾, 另外M-<和M->分别移动到文章的开头和结尾。 而C-K则可以删除当前光标所在行中光标之后的部分.而M-K是删除到句尾(到下一个句点).C-Y则会将刚刚删除的内容恢复到光标所在的位置(所以,可以用C-K C-Y的组合将某行移动到别的地方).偶而某些操作引起屏幕显示混乱,可以用C-L刷新屏幕.
还有一些不太常用的组合键:M-A,M-E分别是移动到句首和句尾(以句号为准),而M-F和M-B是向前和后退各一个字(英文单词).如果你删除了很多东西,那么C-Y的结果可能不是你需要的,这时用M-Y可以在删除内容中转换.
C-U是一个"引数",例如,C-F是前进一个字符,那么,如果你想前进10个字符,按下C-U,输入10,再按C-F,就可以实现了,其它大部分命令也可以这样引用,例如,从文件头跳到1000行的命令是C-U 1000 C-N.
C-S是查询,按下C-S组合键,然后输入要查找的字符串就可以进行查找了.如果想连续查询,只要连续按C-S,emacs会自动地在文件中移动光标到下一个查询点.
emacs还有一个非常重要的功能是用来编辑C源程序.假定你编辑的是test.c,按下C-!(即C-Shift-1)执行shell命令(或者用C-Z挂起emacs)etags test.c,这样就可以建立emacs所需要的符号对照表;如果你在编辑程序中忘记某个函数是在哪里,比如是func,那么把光标移动到func处按下M-, Enter就可以跳转到func的定义处,看完了以后连续按C-X C-X光标又回到原来编辑的地方.
emacs的详细使用和配置比上面说的要复杂的多它可以用lisp语言进行精确控制,在这里我们不再多说,由于emacs是gnu的,除了linux以外你可以在任何有gcc编译器的系统上进行编译生成一个可以在自己机器上使用的emacs,不过要注意emacs十分庞大,不要造成磁盘空间溢出.