GNU Emacs 教程:如何编辑文件(包括备忘单)
已发表: 2016-01-26Short Bytes:你想学习 Emacs 文本编辑器的基础知识吗? 好吧,这里有一个基本教程供您入门。 对于那些不知道的人,GNU Emacs 是一个广受欢迎的文本编辑器,它具有广泛的功能。
那么,什么是 Emacs?
GNU Emacs,或者通常只是 Emacs,根据其手册页,是一个可扩展的、可定制的、自记录的实时显示编辑器。 它不仅仅是一个文本编辑器。 它可用于查看电子邮件、浏览网页、编译和运行程序、测试软件(使用 gdb)和管理文件。 为了这篇文章,我们将使用它作为文本编辑器。
在 Emacs 中编辑有那么难吗?
一点都不。 您只需使用鼠标和键盘即可编辑文件,无需任何快捷方式。 就像记事本一样。 显然,它的效率并不高。 您需要一些常用任务的快捷方式,而 Emacs 有数以万计的快捷方式。
让我们做一些编辑……
在 Emacs 中打开文件
好的。 按Ctrl-x Ctrl-f
。 然后键入文件名。 您可以在屏幕底部(称为 minibuffer)键入时看到文件名。 Tab
完成也在那里工作。
或者,也可以使用下拉文件菜单或打开文件图标(Emacs 框架的左上角)打开文件,或者只需双击文件即可。
基本光标移动
Emacs 支持通过箭头键移动光标,但最好将手指放在键盘的标准位置上。 这是围绕文本进行基本移动的键绑定列表。
Ctrl-p:
移动到上一行
Ctrl-n:
移动到下一行
Ctrl-f:
向前移动一个字符
Ctrl-b:
向后移动一个字符
Ctrl-e:
移动到行尾
Ctrl-a:
移动到行首
大多数这些快捷方式都有Meta
表亲。 就像Ctrl-f
将光标向前移动一个字符一样, Meta-f
将光标向前移动一个单词。 Meta
在大多数键盘上显示为Alt
。
下一节之前的一些术语
在 Emacs 中,缓冲区的概念非常普遍。 一般来说,一旦你打开了一个文件,就说它驻留在缓冲区中。 您对该文件所做的任何更改都存在于缓冲区中。 除非您保存了这些更改,否则它们不会出现在磁盘上。 Emacs 支持同时编辑多个缓冲区。 也就是说,您可以将多个文件加载到 Emacs 缓冲区并在它们之间切换,而不会丢失您所做的任何更改。
在 Emacs 中, windows的概念与其他常用软件不同。 在 Emacs 中,可以将屏幕分割成多个窗口,每个窗口都有自己的缓冲区。 请注意,两个窗口共享相同的屏幕、相同的文件菜单以及相同的关闭和最小化按钮。 一般来说,两者都存在于同一个窗口中。
其他软件称为窗口的东西,Emacs 将它们称为框架。 也就是说,每一帧都有不同的文件菜单和关闭按钮。
Emacs 中的多窗口编辑
多窗口编辑是我最喜欢 Emacs 的功能之一。 Emacs 中有几个多窗口编辑快捷方式。 我会尽量减少到最低限度。 只需同时编辑两个文件。
首先,使用Ctrl-x Ctrl-f,
然后使用文件名。 然后按Ctrl-x 2
。 这会将窗口一分为二,一个在另一个下方。 最初,两个窗口都显示相同的缓冲区。 要在窗口之间切换,请按Ctrl-x o
。 在第二个窗口中打开另一个文件并同时编辑它们。 或者,Emacs 可以并行显示多个窗口。 为此,请按Ctrl-x 3.
要杀死第二个窗口,即在框架上只显示一个窗口,请按Ctrl-X 1.
当您杀死一个窗口时,与之关联的缓冲区不会被破坏。 换句话说,您对第二个窗口所做的任何更改都不会丢失。 该缓冲区只是隐藏的。 要在缓冲区之间切换,请阅读下一节。
在缓冲区之间切换
初学者可能不会很直观地发现多个缓冲区的想法。 好吧,我没有。 我曾经打开一个文件,对其进行更改,保存它,关闭它,然后打开另一个文件。 即使作为参考,您也需要先保存并关闭,或者打开另一个文本编辑器窗口(即 Emacs 上下文中的框架),以查看另一个文件。 相信我,多个缓冲区可以使任务变得更加轻松和高效。
在 Emacs 中,在打开的缓冲区之间切换非常简单。 按Ctrl-x b,
然后输入缓冲区名称。 可以对此类任务使用tab
完成。 或者,按Ctrl-x Ctrl-b.
这将打开另一个显示缓冲区列表的窗口。 要关闭此窗口,您知道该怎么做。 您可能会看到一些以前存在的缓冲区,例如TUTORIAL、*Messages*等。当您打开它们时,它们的使用会很明显。
在 Emacs 中保存文件
这也许是最重要的任务。 Emacs 足够智能,不会在您未保存而退出时或在电源故障后丢失您的更改。 当您没有保存更改并且 Emacs 由于某种原因关闭时,默认情况下会创建一个名为#filename.txt#的新文件。 此文件包含您所有未保存的更改。 不过,最好在不需要时避免冒险,并在退出前保存文件。
要保存在缓冲区中所做的更改,请按Ctrl-x Ctrl-s.
或者,按Ctrl-x Ctrl-w,
以使用其他名称保存文件。
各种各样的:
更多快捷方式和 Emacs 功能可能对您有所帮助。
取消命令
如果您由于部分输入的命令或任何其他原因而卡在 minibuffer 区域,请按Ctrl-g
退出该操作。 或者,按三次Esc
键 ( Esc Esc Esc)
也会导致取消部分操作。
搜索
要搜索关键字或短语,请按Ctrl-s
并输入关键字。 您键入的关键字将显示在 minibuffer(最底行)中。 Emacs 对关键字进行增量搜索,也就是说,它会在您键入第一个字符时立即开始搜索。 要查找关键字的下一个匹配项,请再次按Ctrl-s
。
即刻退出
可以通过点击顶部显示的关闭 (X) 按钮退出 Emacs(无论您的 DE 显示该按钮的位置)。 因为我们在这篇文章中只讨论命令行,所以按Ctrl-x Ctrl-c
会做同样的事情。 尽管如果您未保存缓冲区,它会在迷你缓冲区中显示警告。 按 y 或 n 就足够了。
滚动
行滚动如上所述,即按Ctrl-n
或Ctrl-p.
对于页面滚动,按Ctrl-v
或Meta-v
。
结束语
我试图描述 Emacs 中一些最常用的快捷方式和基本文件编辑。 我所描述的只是你可以用 Emacs 做的一小部分。 不过这对于开始使用 Emacs 来说已经足够了。 随着我进一步了解并找到值得发布的功能,我将发布更多关于 Emacs 的信息。
如果您已经开始学习 Emacs 并喜欢它,我强烈建议您阅读 Emacs 附带的介绍性教程。
Emacs 备忘单
从这个备忘单(Emacs Cheat Sheet)中打印出来,并尝试仅使用组合键来执行操作。 尽可能避免使用鼠标,您会看到文本编辑变得多么高效。
你觉得这个基本的 Emacs 教程有帮助吗? 在下面的评论中告诉我们您的观点。