Emacs 使用详解:从入门到精通的编辑器之旅

一、引言

文本编辑器是最常用的工具之一。除了 Vim,Emacs 也是非常不错的文本编辑器,同样高度可定制、可扩展,简直可以称为是伪装成操作系统的集成开发环境。

Emacs 的魅力首先是无与伦比的高度可定制性。从界面主题、字体大小,到每一个按键绑定、每一个功能模块,都可以进行调整。这种定制能力背靠 Emacs Lisp (Elisp) 编程语言,整个 Emacs 都是用 Elisp 编写的,不仅可以使用,还能编写 Elisp 代码来修改、扩展,创造新的功能。

Emacs 有着数以千计的扩展包,从编程语言支持、版本控制集成、邮件客户端、日程管理到网页浏览等几乎所有能想象到的功能。最后,

Emacs 纯键盘操作,支持丰富的快捷键和命令系统,实现“手不离键盘”的流畅操作。

Emacs 支持所有主流编程语言,可以集成调试器、版本控制工具。也支持文本操作的正则表达式搜索替换、宏录制等。只要形成肌肉记忆,就不再需要鼠标操作。

这篇文章就提供一份全面、系统的指南。从 Emacs 的核心概念,深入到文件操作、光标移动、编辑技巧等常用操作。

在这里插入图片描述

二、Emacs 核心概念

要想熟练使用 Emacs,必须要理解背后的一些核心概念。这些概念是 Emacs 操作逻辑的基础。

2.1、按键和修饰符

Emacs 的操作几乎完全依赖于键盘,所以要先理解按键和修饰符的组合。

  • C- (Control):表示按下键盘上的 Ctrl 键不放,同时按下一个字母或符号。比如,C-f 表示按住 Ctrl 键再按 f 键。
  • M- (Meta):对应的是 Alt 键(Windows/Linux)或 Option 键(macOS)。因此,M-f 表示按住 AltOption 键再按 f 键。如果您的键盘没有 AltOption 键,或者该键被其他系统功能占用,您也可以通过先按一下 Esc 键,然后松开 Esc 键,再按后续的字母或符号来模拟 Meta 键。例如,Esc f 等同于 M-f
  • RET:表示回车键 (Enter)。
  • SPC:表示空格键 (Spacebar)。
  • DEL:表示删除键 (BackspaceDelete)。
  • TAB:表示制表符键 (Tab)。

Emacs 的很多操作都要连续按下多个组合键。比如,C-x C-f 表示先按 C-x,然后松开 x 键(但 Ctrl 键可以一直按着,也可以松开再按),再按 C-f

2.2、命令和缓冲区

Emacs 中的所有操作都是通过执行“命令”来完成的。每个按键组合实际上都绑定了一个或多个命令。

  1. M-x 执行命令:不知道某个操作的快捷键,或者想要执行一个没有直接快捷键绑定的命令,可以按下 M-x ,Emacs 会在小缓冲区提示输入命令名称。可以输入命令的全名,也可以输入部分名称,然后按 TAB 键进行补全。
  2. C-f 实际上是执行 forward-char 命令,光标向前移动一个字符。C-x C-f 则是执行 find-file 命令。

缓冲区 是 Emacs 存储文本内容的容器。所有正在编辑的文件、Emacs 内部的消息、帮助文档等,都存在各自的缓冲区。

  1. 文件和缓冲区的关系:打开一个文件,Emacs 会为这个文件创建一个缓冲区,并把文件内容加载到其中。对文件内容的修改实际上是对缓冲区内容的修改。只有保存缓冲区时,这些修改才会写入到磁盘上的文件中。
  2. 一个缓冲区可以处于“已修改”状态(在模式行显示 ***),表示内容和磁盘上的文件不一致。提醒需要保存更改。Emacs 可以同时打开和编辑多个文件,每个文件对应一个缓冲区,可以在它们之间自由切换。

窗口 是 Emacs 显示缓冲区内容的区域。一个 Emacs 帧 包含一个或多个窗口。

  1. 一个帧内多窗口:在一个 Emacs 帧内把显示区域分割成多个窗口,每个窗口显示不同的缓冲区内容。可以同时查看和编辑多个文件,或者在一个窗口中编辑代码,另一个窗口中查看文档或编译输出。
  2. Emacs 支持水平分屏和垂直分屏,自己调整窗口的大小和布局。

是 Emacs 的顶级图形窗口。在图形界面下,一个帧对应操作系统的一个独立窗口。打开多个 Emacs 帧,每个帧都可以有自己独立的窗口布局和缓冲区显示。适合多显示器环境下,或者把不同的工作任务分组到不同的 Emacs 实例。在命令行模式下(emacs -nw),只能有一个帧,即整个终端窗口。

小缓冲区 是 Emacs 窗口最底部的一行区域,主要是进行交互。执行 M-x 输入命令、C-x C-f 输入文件名、或者进行搜索替换时,Emacs 会在小缓冲区中显示提示信息,等待输入。同时也是 Emacs 显示各种消息、错误提示和状态信息的地方。小缓冲区支持历史记录和补全功能。

模式 是 Emacs 根据当前缓冲区内容或用户需求激活的一组特定行为和功能。Emacs 主要有两种类型的模式:主模式和辅模式。

  1. 主模式:每个缓冲区在任何时候都只能有一个主模式。主模式根据正在编辑的文件类型自动激活。主模式会提供跟文件类型相关的特定功能,如语法高亮、自动缩进、代码补全、编译命令等。
  2. 辅模式:是可以在主模式之上叠加的辅助功能。一个缓冲区可以同时激活多个辅模式。辅模式主要提供一些通用的增强功能,比如 Auto-fill-mode(自动换行)、Flycheck-mode(实时语法检查)、Linum-mode(显示行号)等。

三、Emacs 的安装

macOS 上安装 Emacs :

brew install emacs

如果要图形界面的 Emacs.app,可以用

brew install --cask emacs
# 或 
brew install emacs-mac

也可以从 Emacs for OSX 网站下载预编译的二进制文件( .dmg 格式)进行安装。

大多数 GNU/Linux 发行版在其官方软件仓库中都提供了 Emacs 包。

Debian/Ubuntu

sudo apt update
sudo apt install emacs

也可以安装 emacs-nox 版本,纯文本终端版本,不依赖图形界面。

Fedora/CentOS

sudo dnf install emacs
# 或者
sudo yum install emacs

图形界面启动

emacs
# 或者后台运行模式
emacs &

启动后的界面:

在这里插入图片描述

命令行界面启动

emacs -nw

启动 Emacs的同时可以在命令后跟随文件名来直接打开一个或多个文件:

打开单个文件

emacs filename.txt

打开多个文件

emacs file1.txt file2.org file3.py

四、Emacs 入门

4.1、退出 Emacs (C-x C-c)

退出 Emacs 是要学会的第一个重要操作。退出命令: C-x C-c

操作方法

  1. 按住 Ctrl 键不放。
  2. 按下 x 键。
  3. 松开 Ctrl 键。
  4. 再次按住 Ctrl 键不放。
  5. 按下 c 键。
  6. 松开 Ctrl 键。

C-x 是一个前缀键,表示接下来要输入的命令和 文件或缓冲区操作有关。C-cC-x 之后,表示退出 Emacs或终止当前操作。

如果当前有未保存的修改,Emacs 会在退出前提示保存文件。选择 y (保存)、n (不保存) 或 ! (强制退出,不保存)。

4.2、挂起 Emacs (C-z)

暂停Emacs 进程,把控制权交还给启动 shell 终端。回到终端执行其他命令,但又不关闭 Emacs。

操作方法

  1. 按住 Ctrl 键不放。
  2. 按下 z 键。
  3. 松开 Ctrl 键。

执行 C-z 后,Emacs 会暂停,会看到终端的提示符。 要恢复 Emacs,可以在终端中输入 fg(foreground)命令,Emacs 会回到前台继续运行。

注意C-z 仅在终端模式(emacs -nw)或从终端启动的图形模式 Emacs 中有效。桌面环境图标启动的图形 Emacs ,C-z 是没有效果的。

4.3、取消操作 (C-g)

C-g 是 Emacs 最重要的命令之一,称为“救命稻草”。不管是输入了错误的命令前缀、卡在某个交互式操作中,或者只是想取消当前正在进行的命令,C-g 都能回到正常状态。

操作方法

  1. 按住 Ctrl 键不放。
  2. 按下 g 键。
  3. 松开 Ctrl 键。

Emacs 在等待输入,或者正在执行一个长时间运行的命令时,按下 C-g 可以立即中断并取消当前操作。

在 Emacs 的小缓冲区输入命令时,C-g 也可以用来清空小缓冲区的内容,取消当前输入。

这是一个非常常用的命令,不知道干了啥,就按一下 C-g,指定错不了。

4.4、内置教程 (C-h t)

Emacs 自带一个非常详细的、交互式的教程,这是学习 Emacs 的最佳教程。

操作方法

  1. 按住 Ctrl 键不放。
  2. 按下 h 键。
  3. 松开 Ctrl 键。
  4. 再次按下 t 键。

C-h 是 Emacs 帮助系统的前缀键。 t 表示“tutorial”(教程)。执行 C-h t 后,Emacs 会在一个新的缓冲区打开教程。这个教程是交互式的,指导进行各种操作,并解释 Emacs 的基本概念和常用快捷键。

在这里插入图片描述

跟随教程的指示进行操作,就能掌握 Emacs 的文本编辑、光标移动、文件操作等核心技能。培养 Emacs 肌肉记忆。

五、Emacs 常用操作

5.1、文件操作

文件操作是任何编辑器最基本的功能。

打开文件 (C-x C-f): 这是最常用的文件操作命令。执行后,Emacs 会在小缓冲区提示输入要打开的文件路径。可以输入完整路径,也可以使用 Tab 键进行文件名补全。如果文件不存在,Emacs 会创建一个新文件。

  • 命令find-file
  • 操作C-x C-f

保存文件 (C-x C-s): 当前缓冲区的内容保存到其关联的文件。如果缓冲区是新建的(尚未保存过),Emacs 会提示输入文件名。

  • 命令save-buffer
  • 操作C-x C-s
  • Emacs 会自动备份文件,以 filename~ 结尾。

另存为 (C-x C-w): 当前缓冲区的内容保存到指定的新文件。类似“另存为”功能。当前缓冲区会立即关联到这个新文件。

  • 命令write-file
  • 操作C-x C-w

关闭缓冲区 (C-x k): 关闭当前缓冲区。如果缓冲区有未保存的修改,Emacs 会提示是否保存。关闭缓冲区并不会关闭 Emacs 本身,只是把文件从 Emacs 的工作空间中移除。

  • 命令kill-buffer
  • 操作C-x k

5.2、光标移动

Emacs 提供有非常丰富和高效的光标移动命令,不用触碰鼠标就能在文本中自由穿梭。

字符、行、单词、段落移动:

  • C-f (forward-char):光标向前移动一个字符。
  • C-b (backward-char):光标向后移动一个字符。
  • C-p (previous-line):光标向上移动一行(到上一行的相同列)。
  • C-n (next-line):光标向下移动一行(到下一行的相同列)。
  • C-a (beginning-of-line):光标移动到当前行的开头。
  • C-e (end-of-line):光标移动到当前行的末尾。
  • M-f (forward-word):光标向前移动一个单词。
  • M-b (backward-word):光标向后移动一个单词。

屏幕和文件移动:

  • C-v (scroll-up-command):向下滚动一屏。
  • M-v (scroll-down-command):向上滚动一屏。
  • M-< (beginning-of-buffer):光标移动到缓冲区的开头。
  • M-> (end-of-buffer):光标移动到缓冲区的末尾。

跳转到指定行 (M-g M-g):

  • 命令goto-line
  • 操作M-g M-g (或 M-g g)
  • 说明:执行后,Emacs 会在小缓冲区提示输入行号,然后光标会跳转到该行的开头。

5.3、编辑操作

Emacs 的编辑操作围绕“Kill”(剪切/删除)和“Yank”(粘贴)的概念展开,引入 kill-ring 来管理剪切/复制的历史。

删除字符和行:

  • C-d (delete-char):删除光标所在位置的字符。
  • C-k (kill-line):从光标位置开始,删除到行尾的所有内容。这部分内容会被放入 kill-ring

撤销 (C-/, C-x u):

  • 命令undo
  • 操作C-/C-x u
  • 说明:撤销上一次的修改。Emacs 的撤销功能非常强大,可以无限次撤销。

剪切/复制/粘贴(Kill/Yank 概念):

  • kill-ring 的作用:Emacs 没有传统的“剪贴板”,而是用一个名为 kill-ring 的环形缓冲区。所有“Kill”命令删除或 M-w 复制的内容都会存储到 kill-ringkill-ring 会记住最近的几次“Kill”或复制操作。
  • C-k (kill-line):剪切从光标到行尾的内容并放入 kill-ring
  • M-w (copy-region-as-kill):复制选定区域的内容到 kill-ring,但不删除原内容。
  • C-y (yank):粘贴 kill-ring 最新(最近一次 Kill 或 Copy)的内容到光标位置。
  • M-y (yank-pop):在执行 C-y 后紧接着执行 M-y,可以在 kill-ring 中循环选择之前剪切/复制过的内容进行粘贴。每次执行 M-y 都会替换当前粘贴的内容为 kill-ring 中的上一个条目。

5.4、区域选择

Emacs 选择一段文本称为“标记区域”。区域由“点”(point,即光标位置)和“标记”(mark)确定。

设置标记 (C-SPC):

  • 命令set-mark-command
  • 操作C-SPC (或 C-@)
  • 说明:在当前光标位置设置一个“标记”。一旦设置了标记,移动光标时,从标记位置到当前光标位置的文本就会被“选中”(会高亮显示)。这个高亮区域就是“活动区域”(Active Region)。
  • 取消标记:再次按下 C-SPCC-g 可以取消活动区域。

选中区域的含义: 选中区域后,可以对其执行各种操作,比如:

  • M-w:复制选中区域。
  • C-w (kill-region):剪切选中区域。
  • M-x indent-region:缩进选中区域。

全选 (C-x h):

  • 命令mark-whole-buffer
  • 操作C-x h
  • 说明:快速选中整个缓冲区的所有内容。

5.5、搜索和替换

C-s (isearch-forward):向前(向下)增量搜索。执行后,在小缓冲区输入搜索内容,Emacs 会立即高亮显示匹配项。

  • 连续按 C-s:跳转到下一个匹配项。
  • RET (回车):结束搜索,光标停留在当前匹配项。
  • DEL (退格):删除搜索字符串的最后一个字符。
  • C-g:取消搜索。

C-r (isearch-backward):向后(向上)增量搜索。操作方式和 C-s 类似。

替换 (M-%M-x query-replace): 交互式地查找并替换文本。执行后,Emacs 会在小缓冲区提示输入要查找的字符串,然后输入替换的字符串。对应 命令 是:query-replace

交互模式:找到第一个匹配项并询问如何处理:

  • y:替换当前匹配项并跳到下一个。
  • n:不替换当前匹配项并跳到下一个。
  • !:替换所有剩余的匹配项,不再询问。
  • RET (回车):结束替换。
  • C-g:取消替换。

5.6、窗口和缓冲区管理

Emacs 的一个强大之处是灵活的窗口和缓冲区管理系统,在一个 Emacs 实例同时处理多个文件和任务。

垂直/水平分屏:

  • C-x 2 (split-window-vertically):当前窗口垂直分割成两个,用来并排显示两个文件或同一文件的不同部分。
  • C-x 3 (split-window-horizontally):当前窗口水平分割成两个,用来上下显示两个文件。

切换窗口 (C-x o):

  • 命令other-window
  • 操作C-x o
  • 说明:在当前帧的多个窗口之间循环切换光标焦点。

关闭窗口 (C-x 0),只保留当前窗口 (C-x 1):

  • C-x 0 (delete-window):关闭当前光标所在的窗口。
  • C-x 1 (delete-other-windows):关闭除当前光标所在窗口之外的所有其他窗口,让当前窗口占据整个帧。

列出缓冲区 (C-x C-b):

  • 命令list-buffers
  • 操作C-x C-b
  • 说明:打开一个名为 *Buffer List* 的新缓冲区,列出所有当前打开的缓冲区。可以通过这个列表查看、切换或关闭缓冲区。

切换缓冲区 (C-x b): 在小缓冲区提示输入要切换到的缓冲区名称。可以输入完整名称,也可以用 Tab 键进行补全。这是在不同文件之间快速切换的最常用方法。

  • 命令switch-to-buffer
  • 操作C-x b

六、Emacs 强大的帮助系统

Emacs 最令人称道的功能之一就是内置的、极其完善的帮助系统。这个系统不仅全面,而且是交互式的,能在不离开 Emacs 的情况下,随时随地查询任何命令、变量、模式或快捷键的信息。掌握 Emacs 的帮助系统,就掌握了自学 Emacs 的钥匙。

6.1、C-h 系列命令总览

Emacs 的所有帮助命令都以 C-h(即 Ctrl-h)作为前缀。按下 C-h ,Emacs 会进入一个帮助模式,并在小缓冲区提示输入后续的帮助命令。如果忘记了 C-h 后面可以跟什么,可以直接按 ?,Emacs 会列出所有可用的帮助选项。

C-h 后面常用的一些字符及其对应的功能:

  • C-h c (describe-key-briefly): 简要描述按键绑定的命令。
  • C-h k (describe-key): 详细描述按键绑定的命令。
  • C-h f (describe-function): 描述函数(命令)的功能。
  • C-h v (describe-variable): 描述变量的功能。
  • C-h m (describe-mode): 描述当前主模式和辅模式的信息。
  • C-h a (command-apropos): 搜索包含特定关键词的命令。
  • C-h b (describe-bindings): 列出当前缓冲区的所有按键绑定。
  • C-h t (help-with-tutorial): 启动 Emacs 内置教程。
  • C-h i (info): 启动 Emacs Info 手册。
  • C-h p (finder-by-keyword): 查找 Emacs 包。
  • C-h w (where-is): 查找命令对应的快捷键。

6.2、常用帮助命令

C-h k:查看快捷键功能 (describe-key)。

  • 操作C-h k,然后按下想要查询的快捷键。
  • 说明:这个命令会显示按下的快捷键所执行的命令名称,提供该命令的详细文档字符串。

C-h f:查看函数功能 (describe-function)。

  • 操作C-h f,然后输入函数(命令)的名称,可以按 Tab 键补全。
  • 说明:Emacs 中的所有操作都是通过函数(也称为命令)实现的。这个命令可以查看任何 Emacs Lisp 函数的文档字符串,包括其参数、作用和使用示例。

C-h v:查看变量说明 (describe-variable)。

  • 操作C-h v,然后输入变量的名称,可以按 Tab 键补全。
  • 说明:Emacs 的行为可以通过设置各种变量来定制。C-h v 可以查看任何 Emacs Lisp 变量的当前值及其文档字符串,了解该变量控制着 Emacs 的哪一部分行为。

C-h m:当前模式信息 (describe-mode)。

  • 操作C-h m
  • 说明:显示当前缓冲区激活的主模式和所有辅模式的详细信息。对于理解当前缓冲区的功能特性以及为什么某些快捷键或行为有所不同非常有用。它还会列出模式特有的快捷键绑定。

C-h a:命令搜索 (command-apropos)。

  • 操作C-h a,然后输入一个关键词。
  • 说明:只记得某个操作的关键词,但不记得具体命令名称或快捷键,C-h a 就是非常有用的工具。会列出所有名称或文档字符串中包含该关键词的命令及其对应的快捷键(如果存在)。

C-h b:当前模式下所有快捷键绑定 (describe-bindings)。

  • 操作C-h b
  • 说明:显示当前缓冲区中所有可用的快捷键绑定,包括全局绑定和当前主模式、辅模式特有的绑定。这个列表非常详细,对熟悉当前环境下的所有操作非常有帮助。

七、Emacs 定制和扩展

Emacs 的强大不仅开箱即用的功能,更在于定制性和扩展性。Emacs Lisp (Elisp) 语言、配置文件、包管理器以及预配置发行版,把Emacs 打造成完全符合个人工作流和习惯的专属编辑器。

7.1、Emacs Lisp (Elisp)

Elisp 在 Emacs 中的作用:

  • 核心语言:Emacs 的大部分功能,包括文件操作、光标移动、模式定义、帮助系统等,都是用 Emacs Lisp 编写的。可以说,Emacs 不仅仅是一个编辑器,也是一个用 Elisp 编写的 Lisp 解释器,而编辑器功能只是其上层应用。
  • Emacs 几乎所有方面都可以通过 Elisp 进行修改、扩展或自动化。可以编写 Elisp 代码来定义新的命令、修改现有命令的行为、创建新的模式、自动化重复性任务,甚至构建完整的应用程序。

显示一条消息

(message "Hello, Emacs World!")

设置一个变量

(setq fill-column 80)

定义一个简单的函数

(defun my-insert-date ()
  "Insert current date and time at point."
  (interactive) ; 允许用户通过 M-x 调用此函数
  (insert (format-time-string "%Y-%m-%d %H:%M:%S")))

7.2、配置文件

Emacs 的所有定制和扩展都存储在配置文件(~/.emacs~/.emacs.d/init.el)Emacs 启动会读取并执行这个文件中的 Elisp 代码,加载个性化设置。

配置文件的基本结构: 现代 Emacs 推荐用 ~/.emacs.d/init.el 作为主配置文件,其他相关的配置文件组织在 ~/.emacs.d/ 目录下。

  • 语法:配置文件中的内容就是 Elisp 代码。
  • 注释:用分号 ; 开头的行是注释,Emacs 会忽略。

设置字体

;; 设置默认字体和大小
(set-face-attribute 'default nil :font "Monaco-14" :height 140)
;; 仅在图形界面下设置字体
(when (display-graphic-p)
  (set-face-attribute 'default nil :font "Fira Code-14"))

设置主题

;; 确保主题路径已加载
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes/")
;; 加载一个内置主题 (例如 modus-operandi)
(load-theme 'modus-operandi t)
;; 或者加载一个自定义主题
;; (load-theme 'my-custom-theme t)

显示行号

;; 全局开启行号显示
(global-display-line-numbers-mode 1)

开启括号匹配高亮

;; 开启括号匹配高亮
(show-paren-mode 1)

设置 Tab 宽度

;; 设置默认的 tab 宽度为 4
(setq tab-width 4)
;; 确保 tab 键插入空格而不是制表符
(setq-default indent-tabs-mode nil)

7.3、包管理器

package.el 是 Emacs 内置的包管理器,安装、管理和更新这些第三方扩展。

在配置文件添加如下的代码来初始化 package.el

(require 'package)
(add-to-list 'package-archives '("gnu" . "https://elpa.gnu.org/packages/"))
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) ; MELPA 是最常用的第三方包仓库
;; 确保在加载其他配置前初始化包系统
(package-initialize)

M-x package-refresh-contents更新包列表: 从配置的包归档中下载最新的包列表。

MELPA 等包归档:

  • GNU ELPA:Emacs 官方维护的包归档,是经过严格审查的包。
  • MELPA (Milkypostman’s Emacs Lisp Package Archive):最流行和活跃的第三方包归档,由大量的社区贡献包,更新速度快,但包的质量和稳定性参差不齐。
  • NonGNU ELPA:另一个官方维护的归档,是一些不符合 GNU ELPA 严格自由软件定义的包。

安装和管理第三方包:

  • M-x package-install RET <package-name> RET:安装指定的包。
  • M-x list-packages:打开一个缓冲区,显示所有可用的和已安装的包。
  • M-x package-update-all:更新所有已安装的包到最新版本。
  • list-packages 缓冲区把光标移动到要删除的包上,按 d 标记为删除,然后按 x 执行删除操作。

7.4、预配置发行版

预配置发行版提供一套精心设计的、功能丰富的 Emacs 配置,集成了大量流行包和优化。

Spacemacs

  • 特点:以“社区驱动的 Emacs 发行版”为口号,提供一个优雅、一致、高效的编辑体验。融合了 Vim 的模态编辑(通过 Evil 模式)和 Emacs 的强大功能。
  • 配置层:Spacemacs 的配置是模块化的,通过“层”来组织功能,可以根据需要启用或禁用不同的层。
  • 键绑定:提供了一套统一的、基于 SPC 键的键绑定系统。

Doom Emacs

  • 特点:以“为黑客设计的 Emacs 发行版”为口号,强调速度和极简。也深度集成了 Evil 模式,提供类似 Vim 的操作体验。
  • 模块化:跟Spacemacs 类似,Doom Emacs 也采用模块化配置,可以启用或禁用不同的模块。
  • 性能优化:Doom Emacs 在启动速度和运行时性能方面做了大量优化,比 Spacemacs 更快。
  • 配置语法更接近原生的 Elisp。

如何降低 Emacs 入门门槛:

  • 开箱即用:不用从零开始配置,安装即可获得一个功能强大、美观且配置合理的 Emacs 环境。
  • 集成了各种语言支持、版本控制、文件管理等常用功能,并预设了合理的默认值。
  • 提供一套统一、易于记忆的键绑定方案。
  • 这些发行版都有活跃的社区,提供大量的文档和支持。

八、结语

Emacs 的安装、基本操作、强大的帮助系统以及定制和扩展能力只是 Emacs 的冰山一角。

Emacs 不是一个普通的文本编辑器。而是集成了文本编辑、文件管理、邮件客户端、新闻阅读器、终端模拟器、代码调试器等多种功能的强大集成开发环境(IDE)和操作系统。

本教程只是打开了 Emacs 的大门。要真正掌握它,需要:

  • 多用、多练,让 Emacs 的操作成为“肌肉记忆”。
  • C-h 系列命令是最好的老师,遇到任何疑问,先用 C-h kC-h fC-h a
  • Emacs 的 Info 手册 (C-h i) 是一个宝藏,里面包含了 Emacs 的所有细节。
  • 从简单的 setq 开始,逐步编写 Elisp 代码,让 Emacs 成为习惯。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lion 莱恩呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值