通过 emacs 和 emacsclient 访问文件有什么区别?

通过 emacs 和 emacsclient 访问文件有什么区别?

我之所以问这个问题,是因为除了使用 Thunderbird 外部编辑器扩展(编辑器指定为 )时,它们在大多数情况下看起来都很相似。使用(有时不起作用?)emacsclient -c关闭使用此 emacsclient 实例创建的框架也会杀死与此框架关联的缓冲区(这不是通常的 emacsclient 行为)。C-x C-cC-x #

并且,一般来说,C-x C-c除非在该框架中访问了另一个缓冲区,否则只会关闭框架——在此之后,C-x C-c将尝试关闭所有 emacs。我该如何理解这种行为?

答案1

在 Emacs 中,您可以按 Ch k,然后输入想要了解的组合键,以获取任何键的帮助。按 Ch k Cx # 将返回以下内容:

Cx#运行命令server-edit,它是`server.el'中的交互式编译的Lisp函数。

它与 Cx# 绑定。

(服务器编辑和可选 ARG)

切换到下一个服务器编辑缓冲区;对当前缓冲区说“完成”。如果服务器缓冲区是当前的,则将其标记为“完成”并可选择保存。如果缓冲区在客户端请求之前不存在,也会被终止。当客户端的所有缓冲区都标记为“完成”时,客户端会收到通知。

临时文件(例如 MH 文件)始终会保存和备份,不会有任何疑问。(如果变量“make-backup-files”为零,则仍会禁止备份;您可以在特定缓冲区中本地设置它以防止对其进行备份。)变量“server-temp-file-regexp”控制哪些文件名被视为临时文件名。

如果使用前缀参数调用,或者没有正在运行的服务器进程,则启动服务器进程,仅此而已。由 Cx # 调用。Cx # 运行命令 server-edit,它是 'server.el' 中的交互式编译 Lisp 函数。

Cx Cc 同样如此

Cx Cc 运行命令 save-buffers-kill-terminal,它是“files.el”中的交互式编译的 Lisp 函数。

它与 Cx Cc, 绑定。

(保存缓冲区杀死终端和可选 ARG)

建议保存每个缓冲区,然后终止当前连接。如果当前框架没有客户端,则终止 Emacs 本身。

使用前缀 ARG,默默保存所有文件访问缓冲区,然后终止。

如果 emacsclient 启动时带有要编辑的文件名列表,则只会要求保存这些文件。

相关内容