关闭

《⑨也懂系列:GNU Emacs安装教程Ver.2》世界著名的顶级全能文本编辑器

标签: emacs文本编辑软件教程
601人阅读 评论(0) 收藏 举报
分类:

备注:我的全部文章首发在自己的独立博客(http://rsreland.net)上,编程相关文章会同步到这里,不过文章的维护是优先那边。然后本篇文章的地址是:http://rsreland.net/archives/727 ,可以查看这里对比文章是否有更新版本。


0.GNU Emacs

零、关于本文
《⑨也懂系列:GNU Emacs安装教程Ver.2》这篇文章是 rsreland (http://rsreland.net)于 2015年1月31日 编写,它是
《GNU Emacs顶级的全能文本编辑器》的第二版,对应 GNU Emacs 最新的 24.4 版本,和 Windows 操作系统。(请注意本文的编写时间,及软件版本,来判断本文是否还有效。)

本文是一篇图片为主的软件教程,主要讲述如何下载 GNU Emacs ,以及怎样安装。之后还会说明配置、启动的方法,最后会列出一些使用技巧。

编写本文的原因始于我的一个观点:图片可以比文字传达更多的信息,也能让其他人更容易理解作者的意图及思想。所以希望这篇文章可以让你,轻松的了解 GNU Emacs 的下载、安装及使用。

 

一、什么是GNU Emacs
GNU Emacs 中的 Emacs 是英文 Editor Macros 的字母缩写,意思为 宏编辑器 ,是一个文本编辑器家族,拥有着众多分支,其共同点都是无限制的可扩展性。而 GNU Emacs 中的 GNU 则表明了它是 GNU 计划中的一个子项目,所以 GNU Emacs 的意思就是:它是 GNU 版的 Emacs 文本编辑器。

 

二、为什么使用GNU Emacs
1.GNU Emacs 是开源软件,你可以免费使用。
2.GNU Emacs 拥有无限制的可扩展性。
3.GNU Emacs 的全部操作都可以在键盘上完成,适合编辑大量的文本。

GNU Emacs 既然是 GNU 的一个项目,理所当然的是一个开源软件,你可以很方便的获得它的源代码,进行修改。

GNU Emacs 还是一个可以高度定制的软件,可以使用专门的扩展语言 Emacs Lisp ,给 GNU Emacs 添加任何功能。例如你编写了一个煮咖啡的 GNU Emacs 扩展程序,并将它与一台咖啡机链接,这时你就可以在用 GNU Emacs 编辑文本的同时,顺手敲了指定的组合命令,让咖啡机自动开始煮咖啡了。

GNU Emacs 与普通的文本编辑器相比最大的优点是:可以不使用鼠标,所有的操作均在键盘上敲击快捷命令完成。这样的设计,对于编辑文字会很方便,双手不用离开键盘去操作鼠标,就可以完成所有操作,这节省了很多时间和额外的手部动作。

GNU Emacs 比起文本编辑器,更像一个操作系统,它本身就自带浏览网页、收发邮件、小游戏等各种各样的功能。本质就是一个平台,只要使用 Emacs Lisp 编写插件,就可以为其添加各种各样的功能,甚至是和文本编辑根本没有关系的功能。

 

三、GNU Emacs适合做什么
GNU Emacs 最适合的当然是编写代码。

 

四、下载和安装GNU Emacs
在开始安装之前,请先确认你满足以下几个条件。
1.你的电脑已经连接到网络。
2.你的电脑硬盘有170MB的剩余空间。
3.你现在有充足的时间。(安装包是48M,下载时间受你当前网速的影响。)

如果你确认,你满足了上述条件,那么就可以开始安装 GNU Emacs 了。

注意:教程中的图片都是实际安装时的原比例截图,如果你看不清图片中的提示语,可以将图片放大,不会影响清晰度。具体做法是点击图片,将会进入到图片的展示页面,在展示图片的左下角,有一个叫“原图”的链接,点击它即可。

1.GNU Emacs官方网站的首页(http://www.gnu.org/software/emacs/)
1.GNU Emacs官网首页

GNU Emacs 的官方网站地址是:http://www.gnu.org/software/emacs 。通过地址到达 GNU Emacs 的首页,我们现在想要下载 GNU Emacs ,于是在首页上找到 Obtaining/Downloading GNU Emacs 这个大标题,如上图所示,它在整个首页的中间部分,从上数是第3个大标题。

在这个大标题下有一段话,其中包含了3个链接,分别是 nearby GNU mirror  GNU mirrors  main GNU ftp 。其中 nearby GNU mirror 和 main GNU ftp 是可以进入下载页面,区别在于 nearby GNU mirror 会选择进入离你最近的镜像服务器,因此访问速度和下载速度较快。而 main GNU ftp 则会直接进入官方的服务器,虽然速度无法保证,但其内容绝对是最新的。

nearby GNU mirror  main GNU ftp 这2个链接,只要任选一个点击进入即可。(因为镜像站点页面各不相同,为了内容统一,我选择了官方的 main GNU ftp 。)

 

2.GNU Emacs下载服务器的FTP文件列表
2.GNU Emacs的ftp文件列表

这个页面就是点击 main GNU ftp 链接进入下载服务器后的ftp文件列表,这里列出了适用于 Linux 操作系统的 GNU Emacs 最新版本和过往的历史版本的下载链接,选择自己想下载的版本后,单击对应的链接即可开始下载。

适用于 Windows 操作系统的 GNU Emacs 则在另一个ftp文件列表中,如上图所示,在列表的第1行,有一个 windows/ 链接,单击它就可以转到 Windows 版的 GNU Emacs 的ftp文件下载列表。

 

3.Windows版GNU Emacs的ftp文件列表
3.Windows版GNU Emacs的ftp文件列表

这个页面就是存放 Windows 版 GNU Emacs 的ftp文件列表,如上图所示,这里同样列出了 GNU Emacs 的最新版本和过往的历史版本。

在本文编写完成之时,最新版本是 24.4 版,也就是上图中最下面红框中的 emacs-24.4-bin-i686-pc-mingw32.zip 链接,单击它浏览器即可自动开始下载。

 

4.GNU Emacs的压缩文件
4.GNU Emacs的压缩文件

Windows 版的 GNU Emacs 下载到本地后,如上图所示,是一个zip格式的压缩文件。只要用压缩软件将其解压缩,就可以立刻使用,并不需要安装。

压缩软件可以使用任意一款,因为zip格式是流传非常广的通用压缩格式,任何一款压缩软件都支持,甚至Windows7以上版本,支持直接打开zip格式的压缩文件,就像访问一个文件夹一样自然。但如果你没有安装压缩软件,Windows版本也不支持直接打开,我推荐安装7-Zip压缩软件(http://www.7-zip.org),因为它是自由软件,不用花钱就可以得到正版授权。

 

5.GNU Emacs的安装目录结构
5.GNU Emacs的安装目录结构

虽然 GNU Emacs 解压缩后就可以直接运行了,但为了方便使用,还是要创建一个快捷方式。而我们首先要做的就是进入解压后的 GNU Emacs 目录中,其目录结构如上图所示。

这时我们双击 bin 目录,进入其中。

 

6.GNU Emacs 的 bin 目录结构
6.GNU Emacs 的bin目录结构

在 bin 目录中我们看到了很多有 exe 后缀名的可执行程序,其中 addpm.exe 就是创建快捷方式的可执行程序,双击运行它,就会在电脑桌面和开始菜单中创建一个 GNU Emacs 的快捷方式。

需要注意,如果只是想直接启动 GNU Emacs,只需要双击运行 runemacs.exe 可执行程序,就可以启动 GNU Emacs  的图形用户界面了。不要运行 emacs.exe 和 emacs-24.4.exe ,它们虽然也可以启动 GNU Emacs  的图形用户界面,但它们是从命令行提示符程序中启动的,这就导致在程序运行期间,命令行提示符这个黑色程序界面会一直存在,非常烦人。

 

7.创建 GNU Emacs 快捷方式
7.创建GNU Emacs快捷方式

双击运行 addpm.exe 可执行程序后,会启动命令行提示符程序和弹出一个消息提示框,单击消息提示框中的 确定 按钮,快捷方式就被创建了。

 

8.GNU Emacs快捷方式
8.GNU Emacs快捷方式

如上图所示,就是创建在桌面的 GNU Emacs 的快捷方式,双击它就可以启动 GNU Emacs 了。

 

9.启动的GNU Emacs图形用户界面
9.启动的GNU Emacs图形用户界面

GNU Emacs 启动后的图形用户界面,如上图所示。但这是设置后的样子,初次使用时还需要进行一些手工配置,详细配置见第五部分。

 

五、设置 GNU Emacs

A.GNU Emacs配置文件
A.GNU Emacs配置文件

GNU Emacs 的设置方法和我们在 Windows 下常用的软件有些不同,是在指定文件 .emacs 中通过编写 Emacs Lisp 代码来设置的,这可能让初次接触 GNU Emacs 的人不知所措。所以我会将自己的设置内容放,列在本部分的最下面,供大家参考。

 

B.配置文件的存储位置
B.配置文件的存储位置

GNU Emacs 的设置文件 .emacs 的位置是:C:\Users\<你的用户名>\AppData\Roaming\.emacs ,其中<你的用户名>是指安装 Windows 时,系统提示你输入的用户名。

 

C.创建.emacs文件
C.创建.emacs文件

因为是初次使用 GNU Emacs ,所以你无法在指定目录下找到 .emacs 文件,这时你可以在指定目录手动创造这个文件,但大部分系统会禁止你创造这种只有后缀名没有文件名的文件。

这时你只要先运行 GNU Emacs ,然后按 Options -> Show/Hide -> Tool-bar -> Save Options 这个顺序依次点击,即可创建出 .emacs 文件。

 

D.配置文件.emacs创建成功
D.配置文件.emacs创建成功

.emacs 文件创建成功后,GNU Emacs 的最下面会显示一条信息,如上图所示,你也会在这里看到 .emacs 的存储位置。

 

E.用记事本打开.emacs文件
E.用记事本打开.emacs文件

进入.emacs 文件的存储位置,将它用记事本或任意文本编辑器打开,如上图所示,这时你就可以开始进行配置了。

注意,以英文的分号 ; 为开始的文本行,在 Emacs Lisp 语言里是注释语句的意思,不是代码,只是编写人员对所写代码的解释。

所以上图中的代码,实际等价于下面的2行代码:

(custom-set-variables ‘(tool-bar-mode nil))

(custom-set-faces)

 

F.我的.emacs文件
F.我的.emacs文件

以下是我的设置文件的内容:

;; ========================================
;; 按键绑定
;; ========================================

;; Alt+s进入Shell,默认命令M-x shell
(global-set-key (kbd “M-s”) ‘shell)

;; ========================================
;; 基础功能设置
;; ========================================

;; 设置窗口初始大小
(setq default-frame-alist
‘((height . 33)(width . 70)(menu-bar-lines . 20)(tool-bar-lines . 0)))

;; 在窗口中显示行号
(global-linum-mode 1) ;; 总是显示行号
(setq linum-format ” %d -“) ;; 行号显示格式

;; 显示光标当前所在的行和列
(column-number-mode t)

;; 显示匹配的括号
(show-paren-mode t)
(setq show-paren-style ‘parentheses)

;; 禁止光标闪烁
(blink-cursor-mode -1)

;; 设置光标为红色
(set-cursor-color “red”)

;; 在光标靠近顶部/底部4行时就开始滚动,并防止跳屏
(setq scroll-margin 4
scroll-conservatively 10000)

;; 将确定时输入的关键字 yes 和 no 替换为单字母 y 和 n
(fset ‘yes-or-no-p ‘y-or-n-p)

;; 自动保存 Emacs 桌面(类似历史记录)
;; 第一次使用时,要用 M-x desktop-save 手动选择配置文件的保存地点。
(desktop-save-mode 1)

;; 鼠标自动避开光标
(mouse-avoidance-mode ‘animate)

;; 内置的智能自动补全括号
(electric-pair-mode t)

;; 不生成临时文件
(setq make-backup-files nil)

;; ========================================
;; 中文化设置
;; ========================================

;; 设置为中文简体语言环境
(set-language-environment ‘Chinese-GB)

;; 设置 emacs 使用 utf-8
(setq locale-coding-system ‘utf-8)

;; 设置终端的字符编码
(set-terminal-coding-system ‘utf-8)

;; 设置键盘输入时的字符编码
(set-keyboard-coding-system ‘utf-8)
(set-selection-coding-system ‘utf-8)
(prefer-coding-system ‘utf-8)

;; 文件默认保存为utf-8
(setq default-buffer-file-coding-system ‘utf-8-unix)

;; 解决粘帖中文出现乱码的问题
(set-clipboard-coding-system ‘euc-cn)

;; 解决 Emacs 文件、目录的中文名乱码
(if (eq system-type ‘windows-nt)
(setq file-name-coding-system ‘gbk))

;; 设置默认字符集,解决无法显示中文字体现象
(set-default-font “Consolas-14″)
(set-fontset-font “fontset-default” ‘unicode ‘(“Microsoft YaHei” . “unicode-bmp”))

;; ========================================
;; 插件设置
;; ========================================

;; 插件默认放在程序根目录的share\emacs\site-lisp目录下

;; Google风格的C语言缩进插件
;; 插件下载:https://code.google.com/p/google-styleguide/
(require ‘google-c-style)
(add-hook ‘c-mode-common-hook ‘google-set-c-style)

 

六、使用GNU Emacs
刚开始使用 GNU Emacs 时,会觉得很不习惯。不过没关系,这是正常现象,因为我们习惯了用鼠标在软件界面上操作,而 GNU Emacs 是完全可以在键盘上完成所有操作。而且 GNU Emacs 的快捷键与现在的通用快捷键完全不同,所以你要重新学习并记忆各个快捷键所代表的意义。

所以我建议在最开始使用之前,先到 Help 菜单中,选择 Emacs Tutorial 这个选项。这会启动 GNU Emacs 自带的快速学习教程,帮你尽快熟悉操作方法。

当你觉得 GNU Emacs 不能满足你的需求时,不要想着换一个编辑器,去上网查找一下 GNU Emacs 的插件和资料吧,你会发现只要下载几个插件,或者写几行 Lisp 代码,就可以给 GNU Emacs 添加你想要的功能了。

 

七、常用快捷键提示
GNU Emacs 快捷键命令通常包含 CONTROL 键(有时候以 CTRL 或 CTL 来标示)和 META 键(有时候用 EDIT 或 ALT 来标示)。为了避免每次都要写出全名,我们约定使用下述缩写:

C-<chr> 表示当输入字符 <chr> 时按住 CONTROL 键。因此 C-f 就表示:按住 CONTROL 键再输入 f (一般是按住CONTROL 键的同时再按 f 键)。

M-<chr> 意思与 C-<chr> 同理,表示当输入字符 <chr> 时按住 META(或 EDIT 或 ALT)键。

C-<chr> <chr> 则表示按住 CONTROL 键输入第一个字符 <chr> 后,在输入第二个 <chr> 。

C-<chr> C-<chr> 格式的快捷键,可以理解为连续键入两次 C-<chr> ,但更一般的做法是先按住 CONTROL 键,输入命令前半部分的 <chr> ,之后不要松开 CONTROL 键,只松开 <chr> 键,最后在输入命令后半部分的 <chr> 即可。

 

C-g 放弃当前命令

C-f 后一个字符
C-b 前一个字符
C-p 上一行
C-n 下一行
M-f 后一个单词
M-b 前一个单词
C-a 行首
C-e 行尾
C-v 向下翻一页
M-v 向上翻一页
M-< 到文件开头 ;; M-> 到文件末尾

C-x u 撤销
M-w 复制
C-w 剪切
C-y 粘帖
M-y 粘帖更之前的
M-n 重复执行后一个命令n次
C-u 重复执行后一个命令4次
C-u n 重复执行后一个命令n次
C-d 删除后一个字符
M-d 删除后一个单词
Del 删除前一个字符
M-Del 删除前一个单词
C-k 移除(kill)一行
C-t 交换两个字符的位置
M-t 交换两个单词的位置
C-x C-t 交换两行的位置
C-x i 在当前光标处插入文件

C-s 向后搜索
C-r 向前搜索
M-% 询问并替换(query replace)
Space或y 替换当前匹配
Del或n 不要替换当前匹配
. 仅仅替换当前匹配并退出(替换)
, 替换并暂停(按Space或y继续)
! 替换以下所有匹配
^ 回到上一个匹配位置
RETURN或q 退出替换

C-x C-f 打开或创建一个文件
M-x make-directory 创建一个目录
C-x C-s 保存
C-x C-w 另存为
C-x C-c 退出Emacs

C-x k 关闭当前buffer
C-x b 显示buffer列表

C-x 2 水平分割窗格
C-x 3 垂直分割窗格
C-x o 切换至其他窗格
C-x 0 关闭窗格
C-x 1 关闭除了光标所在窗格外所有窗格
C-x ^ 扩大窗格
M-x shrink-window 缩小窗格
M C-v 滚动其他窗格内容
C-x 4 f 在其他窗格中打开文件
C-x 4 0 关闭当前缓冲区和窗格
C-x 5 2 新建窗口(frame)
C-x 5 f 在新窗口中打开文件
C-x 5 o 切换至其他窗口
C-x 5 0 关闭当前窗口

C-x d 文件管理器
C-x C-q 将文件管理器设置为可编辑模式
C 复制
d 标记等待删除
D 立即删除
e 或 f 打开文件或目录
g 刷新当前目录
m 用*标记
n 光标移动到下一行
o 在另一个窗格打开文件并移动光标
C-o 在另一个窗格打开文件但不移动光标
q 退出dired
R 重命名文件
u 移除标记
v 显示文件内容
d 标记等待删除
x 删除有D标记的文件
> 移动光标至后一个文件夹
< 移动光标至前一个文件夹
s 切换排序模式(按文件名/日期)
+ 创建目录

M-x ediffd 文件对比
M-x shell 打开shell模式
M-x slime 打开slime模式

C-x ( 开始定义宏
C-x ) 结束定义宏
C-x e 运行最近定义的宏
M-n C-x e 运行最近定义的宏n次
M-x name-last-kbd-macro 给最近定义的宏命名(用来保存)
M-x insert-kbd-macro 将已命名的宏保存到文件
M-x load-file 载入宏

M-x gdb 在另一个的窗格中打开gdb

解决乱码问题的相关快捷键
M-x describe-coding-system 显示当前Emacs的编码
C-x r 列出所有编码
C-x r <编码名称> 以指定的字符编码重新读取当前buffer
等价于 M-x revert-buffer-with-coding-system
C-x f <编码名称> 修改当前buffer的编码为指定字符编码
等价于 M-x set-buffer-file-coding-system
C-x c <编码名称> 将当前文本文件的编码转换为指定的编码
等价于 M-x universal-coding-system-argument

 

关于本文:
本文由 rsreland(瑞兰德) 编写,使用 RSReland Documentation License 许可证并遵循其内容,您的权利与义务详见 http://rsreland.net/licence 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1530次
    • 积分:35
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档