Emacs不仅仅是一款功能强大的编译器,而且是一款融合编辑、编译、调试于一体的开发环境。虽然,它没有Visual Sdiao一样绚丽的界面,但是它可以在没有图形显示的终端环境下出色的工作,相信追求强大功能和工作效率的任务并不会介意它朴素的界面的。
Emacs的使用和Vi截然不同。在Emacs里,没有类似于Vi的3种“模式”。Emacs只有一种模式,也就是编辑模式,而且它的命令全靠功能键完成。因此,功能键也就相当重要了。
但Emacs却还使用一个不同Vi的“模式”,它的“模式”是指各种辅助环境。比如,当编辑普通文本时,使用的是“文本模式(Txt Mode)”,而当他们写程序时,使用的则是如“c模式”、“Shell模式”等。
Emacs缩写注释:
C-<chr>表示按住Ctrl键的同时键入字符<chr>。因此,C-f就是:按住Ctrl键同时键入f。
M-<chr>表示当键入字符<chr>时同时按住Meta或Edit或Alt键(通常为Alt键)。
Emacs的基本操作
1.Emacs安装
现在较新版本的Linux(如本书中所用的Red Hat Enterprise 4 AS)的安装光盘中一般都自带有Emacs的安装包,用户可以通过安装光盘进行安装(一般在第2张光盘中)。
2.启动Emacs
安装完Emacs之后,只需在命令行键入“emacs [文件名]”(若缺省文件名,也可在emacs编辑文件后另存时指定),也可从“编程”→“emacs”打开,如3.5图中所示的就是从“编程”→“emacs”打开的Emacs欢迎界面。
图3.5 Emacs欢迎界面
接着可单击任意键进入Emacs的工作窗口,如图3.6所示。
从图中可见,Emacs的工作窗口分为上下两个部分,上部为编辑窗口,底部为命令显示窗口,用户执行功能键的功能都会在底部有相应的显示,有时也需要用户在底部窗口输入相应的命令,如查找字符串等。
图3.6 Emacs的工作窗口
3.进入Emacs
在进入Emacs后,即可进行文件的编辑。由于Emacs只有一种编辑模式,因此用户无需进行模式间的切换。下面介绍Emacs中基本编辑功能键。
(1)移动光标
虽然在Emacs中可以使用“上”、“下”、“左”、“右”方向键来移动单个字符,但笔者还是建议读者学习其对应功能键,因为它们不仅能在所有类型的终端上工作,而且读者将会发现在熟练使用之后,输入这些Ctrl加字符会比按方向键快很多。下表3.3列举了Emacs中光标移动的常见功能键。
表3.3 Emacs光标移动功能键
目 录 | 目 录 内 容 | 目 录 | 目 录 内 容 |
C-f | 向前移动一个字符 | M-b | 向后移动一个单词 |
C-b | 向后移动一个字符 | C-a | 移动到行首 |
C-p | 移动到上一行 | C-e | 移动到行尾 |
C-n | 移动到下一行 | M-<(M加 | 移动光标到整个文本的开头 |
M-f | 向前移动一个单词 | M->(M加 | 移动光标到整个文本的末尾 |
(2)剪切和粘贴
在Emacs中可以使用“Delete”和“BackSpace”删除光标前后的字符,这和用户之前的习惯一致,在此就不赘述。下表3.4列出了以词和行为单位的剪切和粘贴功能键:
表3.4 Emacs剪切和粘贴
目 录 | 目 录 内 容 | 目 录 | 目 录 内 容 |
M-Delete | 剪切光标前面的单词 | M-k | 剪切从光标位置到句尾的内容 |
M-d | 剪切光标前面的单词 | C-y | 将缓冲区中的内容粘贴到光标所在的位置 |
C-k | 剪切从光标位置到行尾的内容 | C-x u | 撤销操作(先操作C-x,接着再单击u) |
注意 | 在Emacs中对单个字符的操作是“删除”,而对词和句的操作是“剪切”,即保存在缓冲区中,以备后面的“粘贴”所用。 |
(3)复制文本
在Emacs中的复制文本包括两步:选择复制区域和粘贴文本。
选择复制区域的方法是:首先在复制起始点(A)按下“C-Spase”或“C-@(C-Shift-2)”使它成为一个表示点,再将光标移至复制结束电(B),再按下“M-w”,就可将A与B之间的文本复制到系统的缓冲区中。在使用功能键C-y将其粘贴到指定位置。
(4)查找文本
查找文本的功能键如表3.5所示:
表3.5 Emacs查找文本功能键
目 录 | 目 录 内 容 |
C-s | 查找光标以后的内容,并在对话框的“I-search:”后输入查找字符串 |
C-r | 查找光标以前的内容,并在对话框的“I-search backward:”后输入查找字符串 |
(5)保存文档
在Emacs中保存文档的功能键为“C-x C-s”(即先操作C-x,接着再操作C-s),这时,屏幕底下的对话框会出现如“Wrote /root/workplace/editor/why”字样,如图3.7所示。
图3.7 Emacs中保存文档
另外,Emacs在编辑时会为每个文件提供“自动保存(auto save)”的机制,而且自动保存的文件的文件名前后都有一个“#”,例如,编辑名为“hello.c”的文件,其自动保存的文件的文件名就叫“#hello.c#”。当用户正常的保存了文件后,Emacs就会删除这个自动保存的文件。这个机制当系统发生异常时非常有用。
(6)退出文档
在Emacs中退出文档的功能键为“C-x C-c”。