Emacs编辑器

       emacs 不仅仅是一款功能强大的编译器,而且是一款融合编辑、编译、调试于一体的开发环境。虽然,它没有 Visual Studio一样绚丽的界面,但是它可以在没有图形显示的终端环境下出色的工作,相信追求强大功能和工作效率的用户不会介意它朴素的界面的。emacs 的使用和 vi 截然不同。在 emacs 里,没有类似于 vi 的 3种“模式”。emacs 只有一种模式,也就是编辑模式,而且它的命令全靠功能键完成。因此,功能键也就相当重要了。

       但 emacs 却还使用一个不同 vi 的“模式”,它的“模式”是指各种辅助环境。比如,当编辑普通文本时,使用的是“文本模式(Text Mode)”,而当写程序时,使用的则是如“c 模式”、“shell 模式”等。


下面,首先介绍一下 emacs 作为编辑器的使用方法,以帮助读者熟悉 emacs 的环境。

emacs 缩写注释:
C+<chr>表示按住 Ctrl 键的同时键入字符<chr>。因此,C+f 就表示按住 Ctrl 键同时键入 f。

M+<chr>表示当键入字符<chr>时同时按住 Meta 或 Edit 或 Alt 键(通常为 Alt 键)。

在终端输入emacs+文件名打开,或者直接输入emacs打开。

在开始界面输入q,进入编辑器。(有些说单击任意键,但未试成功)


在进入 emacs 后,即可进行文件的编辑。由于 emacs 只有一种编辑模式,因此用户无需进行模式间的切换。
下面介绍 emacs 中基本编辑功能键。
(1)移动光标。
虽然在 emacs 中可以使用“上”、“下”、“左”、“右”方向键来移动单个字符,但笔者还是建议读者学习其对应功能键,因为它们不仅能在所有类型的终端上工作,而且读者将会发现在熟练使用之后,输入这些Ctrl 加字符会比按方向键快很多。
C-f            向前移动一个字符                                        M-b                向后移动一个单词
C-b           向后移动一个字符                                        C-a                 移动到行首
C-p           移动到上一行                                              C-e              移动到行尾
C-n             移动到下一行                        M-<(M 加“小于号”)               移动光标到整个文本的开头
M-f 向前移动一个单词                          M->(M 加“大于号”)                  移动光标到整个文本的末尾
(2)剪切和粘贴。
在 emacs 中可以使用“Delete”和“BackSpace”删除光标前后的字符,这和用户之前的习惯一致,在此就不赘述。以词和行为单位的剪切和粘贴功能键如下所示。

M-Delete               剪切光标前面的单词                                   M-k 剪切从光标位置到句尾的内容
M-d 剪切光标前面的单词                                                   C-y 将缓冲区中的内容粘贴到光标所在的位置
C-k 剪切从光标位置到行尾的内容                                           C-x u 撤销操作(先操作 C+x,接着再单击 u)
在 emacs 中对单个字符的操作是“删除”,而对词和句的操作是“剪切”,即保存在缓冲区中,以备后面的“粘贴”所用。
(3)复制文本。
在 emacs 中的复制文本包括两步:选择复制区域和粘贴文本。
选择复制区域的方法是:首先在复制起始点(A)按下“C-Space”或“C-@(C-Shift-2)”使它成为一个标识点,再将光标移至复制结束点(B),再按下“M-w”,就可将 A 与 B 之间的文本复制到系统的缓冲区中。再使用功能键 C-y 将其粘贴到指定位置。
(4)查找文本。
C-s                      查找光标以后的内容,并在对话框的“I-search:”后输入要查找的字符串
C-r                      查找光标以前的内容,并在对话框的“I-search backward:”后输入要查找的字符串
(5)保存文档。
在 emacs 中保存文档的功能键为“C+x C+s”(即先操作 C+x,接着再操作 C+s),这时,屏幕底下的对话框会出现如“Wrote /root/workplace/editor/why”的字样,
另外,emacs 在编辑时会为每个文件提供“自动保存(auto save)”的机制,而且自动保存的文件的文件名前后都有一个“#”,例如,编辑名为“hello.c”的文件,其自动保存的文件的文件名就叫“#hello.c#”。当用户正常地保存了文件后,emacs 就会删除这个自动保存的文件。这个机制当系统发生异常时非常有用。
(6)退出文档。

在 emacs 中退出文档的功能键为“C-x C-c”。


emacs 中的模式


emacs 不仅仅是个强大的编译器,它还是一个集编译、调试等于一体的工作环境。在这里,读者将会了解到 emacs 作为编译器的最基本的概念,感兴趣的读者可以参考《Learning GNU Emacs,Second Edition》一书进一步学习 emacs。在 emacs 中并没有像 vi 中那样的“命令行”、“编辑”模式,只有一种编辑模式。这里所说的“模式”是指 emacs里的各种辅助环境。下面着重讲解 C 模式。
当我们启动某一文件时,emacs 会判断文件的类型,从而自动选择相应的模式。当然,用户也可以手动启动各种模式,用功能键“M-x”,然后再输入模式的名称,这样就启动了“C 模式”。

emacs 中选择模式

在强大的 C 模式下,用户拥有“自动缩进”、“注释”、“预处理扩展”、“自动状态”等强大功能。在“C 模式”下编辑代码时,可以用“Tab”键自动地将当前行的代码产生适当的缩进,使代码结构清晰、美观,它也可以指定缩进的规则。源代码要有良好的可读性,必须要有良好的注释。在 emacs 中,用“M-”可以产生一条右缩进的注释。C模式下是“/* comments */”形式的注释,C++模式下是“// comments”形式的注释。当用户高亮选定某段文本,然后操作“C-c C-c”,就可以注释该段文字。emacs 还可以使用 C 预处理其运行代码的一部分,以便让程序员检测宏、条件编译以及 include 语句的效果。


emacs 编译调试程序


emacs 可以让程序员在 emacs 环境里编译自己的软件。此时,编辑器把编译器的输出和程序代码连接起来。程序员可以像使用 Windows 的其他开发工具一样,将出错位置和代码定位联系起来。emacs 默认的编辑命令是对一个 make 的调用。用户可以打开“tool”下的“Compile”进行查看。emacs 可以支持大量的工程项目,以方便程序员的开发。另外,emacs 为 gdb 调试器提供了一个功能齐全的接口。在 emacs 中使用 gdb 的时候,程序员不仅能够获得 gdb 的全部标准特性,还可以获得通过接口增强而产生的其他性能。





  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值