我的目标是远程编写代码。到目前为止,我一直在使用 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/Emacs-Server.html
根据http://www.gnu.org/software/emacs/manual/html_node/emacs/emacsclient-Options.html#emacsclient-Options 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 的计算机。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)