Emacs

跳转到:导航搜索
GNU Emacs



开发者: GNU 项目
许可: GPLv3+
网站: https://gnu.ac.cn/software/emacs/


GNU Emacs 是一个可扩展、可定制的文本编辑器——以及更多。它的核心是一个 Emacs Lisp 解释器,Emacs Lisp 是 Lisp 编程语言的一种方言,并扩展了对文本编辑的支持。

概述

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 或 Gnus,您必须设置相关的设置文件:~/.emacs

电子邮件

阅读

Rmail

Emacs 中最简单的(设置)电子邮件客户端是 Rmail,要调用 Rmail,请按

M-x rmail

要使用 Rmail 读取电子邮件,除了系统邮件之外,您必须使用程序从服务器获取您的电子邮件,例如 fetchmailofflineimap

Gnus

另一种选择是 Gnus,它主要是一个新闻阅读器,但也可以用于阅读电子邮件,并且可以配置为从服务器获取您的电子邮件,而无需上述邮件获取程序,但设置起来比 Rmail 稍微复杂一些。

发送

Mail

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 密钥,也可以使用此方法作为解决方法。


参见


外部链接