Emacs 文件操作
100%

高级文本操作 · 第 10 课

Emacs 文件操作

学习如何在 Emacs 中访问、保存、重命名、重新载入和审查由文件支持的缓冲区。

Emacs 在缓冲区中访问文件。编辑会先改变缓冲区,保存则把当前内容写入关联路径。请阅读迷你缓冲区消息,因为权限、磁盘上的冲突更改或其他错误都可能阻止写入。

访问文件

使用运行 find-fileC-x C-f,然后在迷你缓冲区中输入路径并按 Enter:

C-x C-f

Emacs 会在缓冲区中打开已有的可读文件;如果路径不存在,则准备一个访问新文件的缓冲区。对于后一种情况,只有成功保存后磁盘文件才会存在。

输入路径时可以使用 Tab 补全。访问目录通常会打开 Emacs 的目录编辑器 Dired,而不会把目录当作文本文件。

哪个 Emacs 按键序列会提示输入路径并访问它?

使用 C-x C-f 访问不存在的路径时,通常何时创建磁盘文件?

保存当前缓冲区

使用运行 save-bufferC-x C-s 保存当前访问文件的缓冲区:

C-x C-s

如果缓冲区没有关联文件名,Emacs 会提示输入一个。成功写入会清除缓冲区的已修改标记;失败则会在缓冲区中保留未保存数据并报告错误。

哪个按键序列会保存当前访问文件的缓冲区?

使用其他名称写入

使用运行 write-fileC-x C-w,可以提示输入路径、把缓冲区写入该处,并让缓冲区改为访问这个新文件:

C-x C-w

这就是 Emacs 的“另存为”行为。它与只写出一份副本、但继续访问原路径不同。

哪个按键序列会对当前缓冲区执行通常的“另存为”操作?

审查多个已修改缓冲区

使用运行 save-some-buffersC-x s 检查已修改且访问文件的缓冲区:

C-x s

Emacs 通常会询问是否保存每个符合条件的已修改缓冲区。请阅读缓冲区名称并谨慎回答;这不是无条件的全部保存快捷键。

C-x s 通常会做什么?

从磁盘恢复

如果文件已在磁盘上改变,而你有意想丢弃缓冲区当前内容,请运行 M-x revert-buffer 并审查确认提示。恢复可能破坏未保存的缓冲区编辑,所以只有在确认应以哪一方为准后才使用。

决定前可以另存副本,或使用版本控制和 diff 工具比较。如果缓冲区已修改,不要把重新加载操作当成无害操作。

课程已完成

你已完成 Emacs 文件操作

现在,你可以管理文件支持的缓冲区,而不会混淆访问与写入。

  • 使用 C-x C-f 访问路径。

  • 只有保存缓冲区时才创建缺失文件。

  • 使用 C-x C-s 保存当前缓冲区。

  • 使用 C-x C-w 以新的访问名称保存。

  • 使用 C-x s 审查多个已修改缓冲区。

保存学习进度

创建免费账户即可保存本课进度,并在任意设备上继续学习。

创建免费账户
下一节
返回 高级文本操作