Emacs
概述
GNU Emacs 的特性包括
- 内容敏感的编辑模式,包括语法高亮显示,适用于各种文件类型,包括纯文本;源代码(几乎任何您可以想象的编程/脚本语言);LaTeX。
- 完整的内置文档,包括面向新用户的教程。
- 支持多种语言及其脚本,包括所有欧洲“拉丁”脚本、俄语、希腊语、日语、中文、韩语、泰语、越南语、老挝语、埃塞俄比亚语和一些印度脚本。
- 高度可定制,使用 Emacs Lisp 代码或图形化定制界面。
- 游戏,如俄罗斯方块、贪吃蛇等。
- 在键入或需要时进行拼写检查(也可以仅在编程模式下检查注释的拼写),并具有添加单词的能力。
- 大量的扩展,添加了其他功能,包括项目计划器、邮件和新闻阅读器、计算器(简单或可编程)、PDF 查看器、Web 浏览器、调试器界面、日历、Twitter 客户端等。其中许多扩展与 GNU Emacs 一起分发;其他则单独提供。
命令
学习一些基本的按键命令后,您可以在 Emacs 中提高生产力。
键入命令时,您可以使用 [TAB] 补全,它将为您补全命令名称或列出可能的命令。
按键指南
C-x = (按住 [CONTROL],按下 x,然后释放 [CONTROL])
C-x C-s = (按住 [CONTROL],按下 x,然后按下 s,然后释放 [CONTROL])
M-2 = (按住 [ALT],按下 2,然后释放 [ALT])
[注意 M = META 通常是 [ALT] 或 [ESCAPE] 当使用 [ESCAPE] 作为 META 时,在按下下一个键之前释放它(例如 M-2 = 按下并释放 [ESCAPE],然后按下 2)。]
书面命令
有时所需的动作没有关联的键序列,在这种情况下必须使用书面命令(按下 M-x,然后输入命令)。
ispell-buffer = (按住 [ALT],按下 x,释放 [ALT],然后在 迷你缓冲区 中键入 "ispell-buffer")
查找表
以下是基本命令的查找表。Emacs 有太多的命令,不可能全部列出,但希望这足以让您入门。
| 操作 | 键序列 | 命令 |
|---|---|---|
| 打开文件 | C-x C-f | find-file |
| 关闭 | C-x C-c | save-buffers-kill-emacs |
| 保存文件 | C-x C-s | save-buffer |
| 另存为 | C-x C-w | write-file |
| 向下翻页 | C-v | scroll-up |
| 向上翻页 | M-v | scroll-down |
| 前往顶部 | M-< | beginning-of-buffer |
| 前往底部 | M-> | end-of-buffer |
| 前往行 | M-g g | goto-line |
| 前往行首 | C-a | beginning-of-line |
| 前往行尾 | C-e | end-of-line |
| 向前搜索 | C-s 搜索词 | isearch-forward 搜索词 |
| 重复上次向前搜索 | C-s C-s | isearch-repeat-forward |
| 向后搜索 | C-r 搜索词 | isearch-backward 搜索词 |
| 重复上次向后搜索 | C-r C-r | isearch-repeat-backward |
| 取消命令 | C-g | keyboard-quit |
| 删除行 | C-k | kill-line |
| 删除句子 | M-k | kill-sentence |
| 粘贴上次删除的内容 | C-y | yank |
| 粘贴上上次删除的内容 | M-y | yank-pop |
| 水平分割窗口 | C-x 2 | |
| 垂直分割窗口 | C-x 3 | |
| 交换活动窗口 | C-x o | |
| 合并窗口 | C-x 1 | |
| 列出缓冲区 | C-x C-b | list-buffers |
| 切换到缓冲区 | C-x b | switch-to-buffer |
| 切换到左侧活动缓冲区 | C-x [LEFT] | previous-buffer |
| 切换到右侧活动缓冲区 | C-x [RIGHT] | next-buffer |
| 删除缓冲区 | C-x k | kill-buffer |
| 拼写检查当前缓冲区 | 无 | ispell-buffer |
| 拼写检查当前单词 | 无 | ispell-word |
| 缩进代码 | C-M-\ | indent-region |
| 前往匹配的闭合括号 | C-M-f | |
| 前往匹配的起始括号 | C-M-b | |
| 注释区域 | M-; | comment-or-uncomment-region |
执行其他任务
电子邮件
阅读
Rmail
Emacs 中最简单的(设置)电子邮件客户端是 Rmail,要调用 Rmail,请按
M-x rmail
要使用 Rmail 读取电子邮件,除了系统邮件之外,您必须使用程序从服务器获取您的电子邮件,例如 fetchmail 或 offlineimap。
Gnus
另一种选择是 Gnus,它主要是一个新闻阅读器,但也可以用于阅读电子邮件,并且可以配置为从服务器获取您的电子邮件,而无需上述邮件获取程序,但设置起来比 Rmail 稍微复杂一些。
发送
Mail 可以发送您的电子邮件,通过以下方式调用
M-x mail
您还可以在您的 ~/.emacs 文件中指定您的:电子邮件地址、姓名、签名等,以便在您开始撰写电子邮件时自动填写。
新闻阅读器
Gnus
Gnus 是一个出色的新闻阅读器,可以通过按以下方式启动
M-x gnus
要使用 Gnus,您首先必须设置您的 ~/.gnus.el 文件,Gnus 的简要指南可在:Gnus
IRC 客户端
ERC 是一个 Emacs IRC 客户端,可以通过以下方式启动
M-x erc
您必须首先将以下内容添加到您的 ~/.emacs 文件中
(require 'erc)
入门
启动 ERC 时,系统会要求您提供一些信息
IRC 服务器
irc.freenode.net
IRC 端口
6667
昵称
your nickname
密码
your password (optional)
ERC 的命令只是标准的 IRC 命令。
故障排除
尝试从 GNU ELPA 安装或刷新软件包时出现“无法下载 gnu 存档”错误。
GNU ELPA 仓库是 GNU Emacs 默认拉取软件包的仓库。该仓库使用的 GPG 密钥于 2019 年 9 月更改。因此,2019 年 9 月之前发布的 Emacs 版本面临无法安装仓库中软件包的问题,因为签名验证错误。
openSUSE Leap 15.2 的用户可能会遇到此问题,因为仓库中的版本是 Emacs 25.3.1。Emacs 25.3 于 2017 年 发布。
对于遇到此问题的用户来说,最方便的解决方案是从网站下载 gnu-elpa-keyring-update 软件包,安装后将更新您的 Emacs 安装程序中存储的 GPG 密钥,并允许您再次访问软件包。
只需从网站下载 tar 文件,然后运行命令
M-x package-install-file
按下 Enter 后,Emacs 会提示您提供下载软件包的位置。
如果希望安装一些软件包但尚未更新安装的 GPG 密钥,也可以使用此方法作为解决方法。