我在远程集群(Linux 操作系统)上有一个大型 C++ 代码存储库。当我需要在我的家用计算机(Ubuntu 操作系统)上处理这些代码时,我尝试通过 X windows 上的 emacs 访问这些代码。然而,X 窗口连接速度非常慢,使得编辑过程变得痛苦。因此,我有时会在本地驱动器和远程集群之间手动移动文件来编辑文件。我的问题是:有没有办法配置我的本地emacs,这样当我在本地空间编辑文件时,它会自动备份到集群中,然后可以编译它?
更新:1
我安装了 TRAMP,它适用于可以直接连接的服务器。不过我也有服务器,只有激活 VPN 才能连接。如何向 TRAMP 提供 VPN 信息以连接到该服务器?
我遇到的另一个问题是如何在 TRAMP 等待远程 shell 的提示时停止 TRAMP,而不必杀死整个 emacs 缓冲区。
最佳答案
这通常是 TRAMP 的用例会有用的。
不要使用 SSH 连接到服务器并使用 X 转发打开 Emacs,而是在您的机器上运行 Emacs 并使用 TRAMP 远程打开文件。例如:
C-xC-f/ssh:user@host:/remote/path/to/the/file
RET
这样,您的 Emacs 进程在本地运行,但所有文件操作(例如保存、恢复等)都会转发到服务器,并且从 TRAMP 缓冲区发出的所有 shell 命令也在远程服务器上运行(这包括 M-x编译
)
更新:1
当 TRAMP 挂起等待远程 shell 提示时(由于我仍然不清楚的原因,这种情况经常发生),我通常会终止底层 ssh
进程 (htop
) > 树状 View 是执行此操作的好工具)。 TRAMP 注意到这一点并自动重新生成被杀死的进程以恢复操作。
关于emacs - 自动备份服务器上的 emacs 文件编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13532637/