设为首页 加入收藏

TOP

3.3.2 Emacs 下的基本操作(2)
2013-10-12 08:58:27 】 浏览:255
Tags:3.3.2 Emacs 基本操作

3.3.2 Emacs 下的基本操作(2)

5. 程序编译

Emacs 可以支持多种编程语言的编辑模式,比如C、C++、Java 等语言。用户可以通过键入“M-x [language]-mode”命令(M-x 是快捷键操作,[language]-mode是命令行输入的命令)来选择各种不同语言模式的编辑环境,[language]表示不同的编程语言。

比如我们首先键入“M-x”快捷方式,进入Emacs 的程序编译模式,然后在命令行区域输入“c-mode”,按回车键后将出现如图3.10 所示的界面。

 
(点击查看大图)图3.10 Emacs 的C编辑模式

可以看到,在图3.10 中,编辑器的菜单栏中多了一个“C”选项,表明Emacs编辑区进入了C 语言的编辑模式。读者可以试试输入“c++-mode”或者“Java-mode”命令时,编辑器的菜单栏将会发生怎样的变化。

在程序编译模式下,当用户输入代码时,Emacs 支持自动缩进显示。事实上,Emacs 可以支持多种缩进风格,在C模式下,用户可以通过使用“M-x c-set-style”命令来选择自己需要的缩进风格。

Emacs 不仅仅是一个编辑器,更是一个集成开发环境,可以使用它来进行C程序(当然也可以是其他的程序设计语言)的编译和调试。用户在“Tools”菜单中找到“Compile”选项,或者直接键入“M-x compile”,就可以在Emacs 的命令行输入编译命令。

如果有Makefile文件(将在第5 章向读者介绍),就接受默认设置,使用“make -k”命令来编译程序。编译出现错误和警告时,程序员可以单击鼠标来定位这些警告和错误。

出现了警告和错误信息,就离不开调试这一重要步骤。Emacs 还支持程序的调试功能,用户可以使用“M-x gdb”命令来调用Linux下的gdb 调试器,或者在Tools菜单中选择gdb选项,然后即可输入调试命令。

表 3.11 列出了在程序编译模式下的常用快捷操作。

表3.11 程序编译模式下的操作

 

在表3.11 中,gdb、dbx、xdb 和sdb 是Linux 下的各种程序调试工具(将在第4 章中向读者介绍),当用户输入不同的命令时,Emacs便会自动调用Linux 下的这些调试器来对当前缓冲区中的程序进行调试。所以,与其说Emacs 是一个文本编辑区,不如说它更像是一个功能强大的集成开发环境。

6. 搜索模式

Emacs支持对当前窗口文件中的字符搜索功能,这无疑会使Emacs下的文本编辑工作变得更加方便、适用。Emacs的字符搜索相关的快捷键操作如表3.12所示。

表3.12 字符搜索操作

 

7. Shell 模式

Emacs 编辑器最显著的特点之一是它支持Linux 的Shell 模式,用户可以在Emacs 的文本编辑区运行Shell终端,并在该终端下运行Shell命令。比如键入“M-x”快捷键后,在Emacs的命令行输入“shell”,按回车键后,Emacs便会在当前窗口打开一个Shell终端。我们在Shell终端中运行命令,如图3.11 所示。

 
(点击查看大图)图3.11 Emacs 下运行Shell

另外,也可以直接在Emacs 的命令行中执行Linux Shell的任何命令,并将执行结果输出在文本编辑区。选择菜单栏中“Tools”选项下的“Shell command”,或键入“M-!”,即可进入Shell模式。

例如,键入“M-!”后,Emacs进入Shell模式,此时在Emacs 的命令行输入“ls -l”命令,按回车键后编辑器的界面如图3.12所示。

 
(点击查看大图)图3.12 Emacs中执行Shell命令

在图 3.12 中可以看到,“ls -l”命令的执行结果显示在Emacs的文本编辑区。由于Shell命令的输出是在一个编辑缓冲区里,因此我们可以对它进行编辑、保存等操作。所以,在想要保存Linux 某一个Shell命令的执行结果的场合中,Emacs的这种模式就显得十分适用。

表 3.13 列出了在Emacs 的Shell模式下常用的快捷键操作说明。

表3.13 执行shell 命令的快捷键

 
此外,Emacs 还具有很多其他的功能,比如收发电子邮件、玩游戏、计算器、浏览网站、查看日历、个人信息管理等,鉴于篇幅和本书的介绍范围,在此不一一列举,用户也可以查看Emacs 的帮助手册来获得更多的信息。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇3.1 vi 的使用 下一篇3.3.2 Emacs 下的基本操作(1)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目