在 Linux 中使用 Emacs 文本编辑器的初学者指南
GNU Emacs 是最古老的文本编辑器之一。 它是由自由软件运动和 GNU项目的创始人 Richard Stallman 创建的。 他也是 GNU C 编译器和调试器的创建者。
Emacs 是一个多功能且高度可配置的文本编辑器,具有数百个键绑定和命令。 凭借众多的配置设置,它可以说是学习曲线陡峭的文本编辑器之一,因此大多数开发人员、系统管理员和普通 Linux 用户更喜欢 Nano 或 Vim 编辑器。
尽管学习 Emacs 的来龙去脉很复杂,但它并不完全对初学者不利,只要有正确的学习策略和指导,您很快就会感到舒服。
在本指南中,我们将牵着您的手,带您了解 Emacs 编辑器。 读完本指南后,您将掌握足够的知识来开始使用 Emacs 编辑器。
如何在 Linux 中安装 Emacs
在我们开始使用 Emacs 之前。 我们先来看看如何在各种Linux发行版上安装它。
对于基于 Debian 的系统,您可以使用 apt 包管理器从默认存储库轻松安装 Emacs。
$sudo apt update
$sudo apt install emacs -y
对于基于 RedHat 的系统(例如 Rocky Linux、Alma Linux 和 Fedora),请使用 dnf 包管理器从默认存储库安装 Emacs。
$sudo dnf update
$sudo dnf install emacs -y
要在其他 Linux 发行版上安装 Emacs,请使用以下适当的命令。
sudo emerge -a sys-apps/emacs [On Gentoo Linux]
sudo apk add emacs [On Alpine Linux]
sudo pacman -S emacs [On Arch Linux]
sudo zypper install emacs [On OpenSUSE]
sudo pkg install emacs [On FreeBSD]
除此之外,我们现在开始使用 Emacs 编辑器。
Emacs 编辑器入门
Emacs 编辑器提供 GUI 和 CLI 版本作为单独的实体。 然而,当从终端调用时,现代 Emacs 版本提供了一个包含菜单、按钮、窗口甚至单独编辑器的 GUI 编辑器。
要启动 Emacs 编辑器,只需运行以下命令:
$emacs
Emacs GUI 窗口将弹出,如图所示。 Emacs 徽标下方是一些有用的链接,您可以单击这些链接来获取有关如何使用 Emacs 的更多信息。
Emacs编辑器
从顶部开始,我们有一个菜单栏,其中包含标准菜单选项,例如“文件”、“编辑”和“选项”。 下面是工具栏,其中包含用于创建新文件、从缓冲区读取现有文件、复制、粘贴和剪切文本等菜单选项。
您可以将鼠标悬停在工具栏图标上,以查看单击时它们执行的任务或操作。
Emacs 编辑器菜单
现在让我们看看其余的 GUI 部分。
Emacs 编辑器部分
让我们简要讨论一下每个部分:
- 框架 – 在普通 GUI 应用程序中这将被称为窗口。 然而,在 Emacs 中,窗口被称为框架。 Emacs 中的默认窗口是“欢迎”窗口,在其中我们可以看到 Emacs 徽标以及有用链接和其他部分的概述。
- 缓冲区 – 缓冲区是保存您正在键入或编辑的文本的画布或区域。 它只是保存文件中包含的文本。 t 内可以有多个缓冲区。 可以随意创建和“杀死”额外的缓冲区。
- 闪烁光标 – 也称为“点”,闪烁的黑色光标就像可以插入文本的光标。
- 状态栏 – 显示有关活动缓冲区和闪烁点的信息。 每个栏都有一个状态栏。
- 迷你缓冲区——这是状态栏下方的空白区域。 它偶尔会显示状态消息(例如,如果您需要保存包含新更改的文件)。 此外,这是您输入和执行 Emacs 命令的部分。
在 Emacs 中打开新文件
要在命令行中的 Emacs 中打开新文件,请键入“emacs”,后跟文件名,然后按 Enter 键。 例如,要打开名为 file1.txt 的文件,请运行命令
emacs file1.txt
这将打开一个新窗口,其中包含包含文件内容的缓冲区。
在 Emacs 中创建一个新文件
从这里您可以继续编辑或处理您的文件。
Emacs 键盘快捷键
在 Emacs 中,大多数任务都是借助键盘快捷键来执行的。 因此,为了更轻松地使用,您需要对常用的键盘快捷键有扎实的掌握。
在 Emacs 中,“Ctrl”和“ESC”键在键盘快捷键中至关重要。
“ESC”键(有时是“ALT”键)是俗称的“Meta”键,缩写为“Meta”键 "M"
。 例如, M-q
意味着按下“Meta”并且 "q"
键盘上的按键。
“Ctrl”键缩写为 "C"
。 例如, C-g
意味着按下“Ctrl”并且 "g"
键盘上的按键。
有些键盘快捷键要求您重复两次。 例如, ”C-h C-h"
表示按“Ctrl”和“h”组合键两次。
现在让我们回顾一下一些常用的键盘快捷键。
- Ch Ch – 填充帮助手册。
- Cg – 退出 Emacs 窗口。
- Cx 右箭头键 – 向右循环浏览缓冲区。
- Cx 左箭头键 – 向左循环浏览缓冲区。
- Cx Cf – 在 Emacs 中打开现有文件。 系统将提示您输入迷你缓冲区中文件的路径。
- Cx Cs – 保存对文件所做的更改。
- Cx s – 该命令保存所有文件。
在 Emacs 中打开/保存和关闭缓冲区
要打开现有文件并将其内容加载到 Emacs 缓冲区中,请使用 C-x C-f
快捷组合。
此操作会在迷你缓冲区中打开一个提示,提示您输入文件名。 因此指定文件路径并按 ENTER 键。
在 Emacs 中打开现有文件
这是在 Emacs 中打开的名为“file1.txt”的示例文件。
在 Emacs 中打开文件
完成文件处理后,使用以下命令保存更改 C-x C-s
键盘组合。
在 Emacs 中保存文件
要将文件保存在不同的名称下,请使用 C-x C-w
键盘快捷键。 这相当于“另存为”功能。 该操作会提示您指定文件名。
在此示例中,我们将同一文件保存为“jamie.txt”。
在 Emacs 中保存带有名称的文件
要关闭缓冲区,请使用 C-x k
捷径。 这会提示您终止缓冲区。 指定后,按 ENTER 退出。
在 Emacs 中关闭文件
如果您在退出缓冲区之前进行更改,系统将提示您保存它们。 要保存更改,请在迷你缓冲区中键入“yes”并按 Enter 键。 否则,请输入“否”。
保存文件中的更改
如何在 Emacs 中剪切/复制/粘贴文本
就像 Nano 或 Vim 等命令行编辑器一样,Emacs 也有自己的“剪切”、“复制”和“粘贴”操作版本。 这些操作有不同的名称。
Kill 操作类似于“剪切”,“yank”类似于“粘贴”。 但在开始复制/剪切/粘贴操作之前,您需要首先选择文本区域。 这部分文本称为“区域”。
要选择要复制或剪切的文本区域,请将指针放在所需区域的开头。 接下来,按键盘上的“C-空格键”快捷键组合。 在迷你缓冲区中,您将看到一条写有“标记设置”的消息。
在 Emacs 中设置标记
接下来,使用箭头键选择文本。 在本例中,我使用向前箭头键选择第一行。 所选文本将突出显示,如图所示。
在 Emacs 中选择文本
要复制文本,请使用 M-w
快捷键 (ESC + W),要剪切或“删除”某个区域,请按 Cw。
接下来,移动到您想要“复制”或粘贴文本的区域,然后点击 C-y
粘贴它。
在 Emacs 中粘贴文本
要撤消更改,请使用组合 C-x u
。
如何在 Emacs 中搜索文本
要搜索字符串或单词,请调用 “C-s”
向前搜索的快捷方式。 要向后搜索,请使用 “C-r”
捷径。 接下来,输入搜索词或查询并按住 ‘C-s’
或者 ‘C-r’
。
在所示示例中,搜索查询是单词“emacs”。
在 Emacs 中搜索文本
搜索查询将突出显示,如图所示。
在 Emacs 中突出显示的搜索文本
当您到达搜索结果的末尾时,您将在迷你缓冲区上看到“Failing I-search”消息。
Emacs 中的 I-Search 失败
如果进行向后搜索,您将在迷你缓冲区上看到“我向后搜索”通知。
在 Emacs 中向后搜索
如果到达搜索模式的末尾,光标将移至文件的开头并回绕到搜索结果的开头。 您将在迷你缓冲区上收到“Overwrapped I-search”通知。
Emacs 中的点评式 I-Search
如何在 Emacs 中查找和替换文本
有时,您可能想要替换文本文件中的特定单词。 对于 Emacs,请使用 ALT + SHIFT + 5 组合。 在迷你缓冲区中输入搜索项。
例如,此处“Emacs”是搜索查询。 然后按 ENTER 键。
在 Emacs 中搜索单词
接下来,提供您想要替换的字符串或单词。 在本例中,“Nano”是替换“Emacs”的单词。 然后按回车键。
在 Emacs 中替换 Word
将显示搜索模式的第一个实例。
Emacs 中的搜索模式
从这里,您可以执行以下操作:
- 键入空格或
'y'
替换一场比赛。 按“删除”或'n'
跳到下一个查询。 - 类型
'!'
替换缓冲区中所有剩余的匹配项。
替换 Emacs 中的模式
Emacs 中的文本换行
默认情况下,Emacs 不会自动换行。 这在阅读大型文档时可能会带来挑战,因为 Emacs 将段落视为单行。
要解决这个问题,只需运行 M-q
将文本换行成可读的段落,如图所示。
在 Emacs 中自动换行
常用的 Emacsa 键盘快捷键
以下是常用键盘快捷键的总结:
视窗
- Cx 0:关闭或退出活动窗口。
- Cx 1:关闭或退出除活动窗口之外的所有窗口。
- Cx 2:水平分割当前活动窗口。
- Cx 3:垂直分割当前活动窗口。
- Cx o:将活动窗口更改为下一个窗口。
缓冲器
- Ch Ch:打开帮助菜单。
- Cx b:切换缓冲区。
- Cx right:循环移动到右缓冲区。
- Cx left:循环移动到左缓冲区。
- Cx k:终止缓冲区。
- Cx Cc:退出 Emacs。
导航
- C-up:将段落向上移动。
- C-down:向下移动一段。
- C-right:将光标向右移动一个单词。
- C-left:将光标向左移动一个单词。
- home:将指针移至行首。
- end:将指针移至行尾。
搜索文本
- Cs:执行向前搜索。
- Cr:执行向后搜索。
- M-%:查询替换(’空格’要替换,’n’要跳过,
‘!’
替换全部)。 - Mq:进行文本换行。
打开/保存文件
- Cx Cf:打开文件。
- Cx Cs:保存文件。
- Cx Cw:这相当于“文件另存为”功能。
- C-_:撤消操作。
复制和粘贴
- Cw:剪切该区域中的文本。
- Mw:复制区域中的文本。
- Cy:粘贴已剪切或复制的文本。
前往 Emacs GitHub 页面了解更多键盘快捷键。
结论
Emacs 是一个轻量级且高度可定制的文本编辑器,提供了大量的定制功能。 然而,由于其较长的学习曲线,现在的开发人员、系统管理员和运营团队更喜欢更容易学习和使用的 Nano 或 Vim 编辑器。
本指南涵盖了 Emacs 的基础知识,并介绍了如何开始使用编辑器以及常用的键盘快捷键。