emacs - 用 emacs 替换 ssh+screen+editor

标签 emacs remote-access gnu-screen

我的目标是远程编写代码。到目前为止,我一直在使用 ssh + screen + 编辑器(例如 vim)。

我了解使用本地 emacs(或 vim),可以编辑远程文件。但是一旦本地 emacs 关闭并且我想重新打开它(或使用另一台计算机打开它),我将需要再次重新打开所有缓冲区。

有没有办法在远程机器上设置 emacs 服务器,我可以使用本地 emacs 客户端简单地访问它?这实质上模拟了屏幕行为。

最佳答案

我想你可能会在这里找到答案;

http://www.gnu.org/software/emacs/manual/html_node/emacs/Emacs-Server.html

根据 http://www.gnu.org/software/emacs/manual/html_node/emacs/emacsclient-Options.html#emacsclient-Options ;

Emacs 服务器通常使用称为“本地套接字”的操作系统功能来监听连接。某些操作系统,例如 Microsoft Windows,不支持本地套接字;在这种情况下,Emacs 使用 TCP 代替。当您启动 Emacs 服务器时,Emacs 会创建一个服务器文件,其中包含 emacsclient 进行连接所需的一些 TCP 信息。默认情况下,服务器文件在 ~/.emacs.d/server/中。在 Microsoft Windows 上,如果 emacsclient 在那里找不到服务器文件,它会在 APPDATA 环境变量指向的目录的 .emacs.d/server/子目录中查找。您可以通过“-f”或“--server-file”选项告诉 emacsclient 使用特定的服务器文件,或者通过设置 EMACS_SERVER_FILE 环境变量。

即使本地套接字可用,您也可以通过将变量 server-use-tcp 设置为 t 来告诉 Emacs 使用 TCP。 TCP 的优点之一是服务器可以接受来自远程机器的连接。为此,您必须 (i) 将变量 server-host 设置为运行 Emacs 服务器的机器的主机名或 IP 地址,以及 (ii) 向 emacsclient 提供服务器文件。 (执行后者的一种方便方法是将服务器文件放在网络文件系统上,例如 NFS。)

当 Emacs 服务器使用 TCP 时,变量 server-port 决定监听的端口号;默认值 nil 表示在服务器启动时选择一个随机端口。

当然,请确保在服务器端调整您的防火墙设置,以便客户端可以连接到运行 emacs-server 的机器。

关于emacs - 用 emacs 替换 ssh+screen+editor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12978424/

相关文章:

emacs - 如果我打开 doc.foo 文件,我希望 emacs 在同一文件夹中查找并打开 doc.bar 文件

windows - 告诉 Emacs 在特定窗口中打开新缓冲区

java - 如何连接到远程HDFS

linux - 将参数传递给远程 SSH

python - 如何判断 screen 是否正在运行?

emacs - 配置 flymake 以使用特定目录的临时文件?

emacs - 在我的 init 文件中禁用 aquamacs 的工具栏

mongodb - 如何在 Kubernetes 集群中公开 MongoDB 副本集的远程连接

keyboard-shortcuts - 将 GNU screen 回滚缓冲区复制到文件(扩展硬拷贝)

PuTTY 中用于 session 管理的 Linux Screen