GNU Emacs 是一款可扩展的文本编辑器,可以使用 Emacs Lisp 自定义其行为。它支持纯文本编辑、编程模式、文件与缓冲区管理,以及许多可选软件包。你可以学习其核心编辑命令,而不必采用所有扩展。
高级文本操作 · 第 9 课
Emacs
学习如何启动 Emacs、理解其按键记法,以及区分缓冲区、窗口和框架。
检查并启动 Emacs
不要假设 Emacs 已经安装。请检查 shell 如何解析它:
$ command -v emacs
/usr/bin/emacs
以正常的显示选择方式启动 Emacs:
$ emacs
在图形会话中,这可能创建图形框架。如果 Emacs 应留在当前终端中,请使用 -nw,即不使用窗口系统:
$ emacs -nw
哪个命令会在当前终端中启动 Emacs,而不使用图形窗口系统?
打开文件
启动 Emacs 时传入路径名即可访问文件:
$ emacs notes.txt
如果文件存在,Emacs 会把它读入缓冲区。如果文件不存在,Emacs 会创建与该路径关联的新缓冲区;只有成功保存后才会创建文件。文件系统权限仍决定写入能否成功。
当 notes.txt 尚不存在时,emacs notes.txt 通常会做什么?
理解缓冲区、窗口和框架
Emacs 使用相互关联但彼此不同的对象:
- 缓冲区保存文本或其他编辑器状态。所访问文件的内容位于缓冲区中。
- 窗口是 Emacs 框架内显示缓冲区的区域。
- 框架是 Emacs 的顶层显示,例如图形框架或终端框架。
多个缓冲区可以存在而不显示,两个窗口也可以显示同一个缓冲区。关闭窗口不一定会终止其缓冲区或删除文件。
Emacs 缓冲区是什么?
阅读 Emacs 按键记法
Emacs 文档使用简洁记法:
C-x表示按住 Control 再按x。M-x表示按住 Meta 再按x;在现代终端和桌面中,Alt 通常充当 Meta。C-x C-f是一个按键序列:先按 Control+x,再按 Control+f。
具体终端可能会拦截或重映射某些按键。先按 Esc 再按另一个键,通常可以替代 Meta 组合键。
如何输入写作 C-x C-f 的 Emacs 按键序列?
启动内置教程
在 Emacs 中输入 C-h t 可打开交互式教程。它会在安全的练习缓冲区中教授移动、插入、保存和退出。C-h 是帮助前缀;C-h C-h 会显示如何使用帮助的说明。
如果 Emacs 显示菜单或欢迎缓冲区,教程仍比直接在重要文件上试验更适合作为结构化起点。
哪个 Emacs 按键序列会打开内置教程?
课程已完成
你已完成 Emacs
现在,你可以启动 Emacs,并理解其基础界面概念。
检查
emacs命令是否可用。使用
-nw选择图形或终端运行方式。在缓冲区中访问已有或新的路径。
区分缓冲区、窗口和框架。
阅读按键记法并打开内置教程。