emacs 是如何编译和编辑文件的?

How does emacs compile the file and edit it?

emacs 中有此功能。每当您编译代码(文件名:hello.cpp)运行 程序然后编辑代码时,emcas 会将您之前未编辑的代码存储在另一个名为 hello.cpp~ . hello.cpp~ 将始终包含您编译的第一个代码,每当您在 emacs 中编辑代码时,它将生成文件名 .#hello.cpp 。当您保存该代码时,它会自动删除 .#hello.cpp 但 hello.cpp~ 将保持不变。 .#hello.cpp 文件包含信息。例如用户名@DESKTOP-FN20BRU.13000:1597860074。那么有人可以向我解释一下 emacs 的工作过程吗?

Emacs 在您编辑文件时执行以下操作 filename

  • #:当您修改文件(在内存中)时,Emacs 会创建一个 # 文件(在磁盘上)并根据您的更改不断更新它,直到您保存编辑后的版本。如果 Emacs 或计算机在您有时间保存更改之前崩溃,则可以在磁盘上恢复此草稿。

  • ~:一旦您保存编辑后的版本,Emacs 会首先重命名磁盘上的旧版本(您打开 Emacs 时的那个版本),添加尾随 ~给出 filename~ 的文件名(它仅在您第一次在当前会话中保存时执行此操作),然后用修改后的版本覆盖 filename,最后删除磁盘上的 # 草稿。

然后,当您进行进一步更改时,会创建另一个 # 文件,依此类推。