2

我在远程集群(Linux 操作系统)上有一个大型 C++ 代码库。当我需要在我的家用计算机(Ubuntu OS)上处理这些代码时,我会尝试通过 X windows 上的 emacs 访问这些代码。然而,X 窗口连接非常缓慢,使得编辑过程很痛苦。所以我有时会在本地驱动器和远程集群之间手动移动文件来编辑文件。我的问题是:有没有办法配置我的本地 emacs,这样当我在本地空间中编辑文件时,它会自动备份到可以编译的集群中?

更新:1

我安装了 TRAMP,它适用于可以直接连接的服务器。但是,我也有服务器,只有在我激活 VPN 时才能连接。如何向 TRAMP 提供 VPN 信息以连接到该服务器?

我遇到的另一个问题是如何在 TRAMP 等待来自远程 shell 的提示时停止它,而不必杀死整个 emacs 缓冲区。

4

2 回答 2

3

这通常是TRAMP有用的用例。

不要使用 SSH 连接到服务器并使用 X 转发打开 Emacs,而是在您的机器上运行 Emacs 并使用 TRAMP 远程打开您的文件。例如:

C-xC-f/ssh:user@host:/remote/path/to/the/fileRET

这样,您的 Emacs 进程在本地运行,但所有文件操作(例如保存、恢复、...)都转发到服务器,并且从 TRAMP 缓冲区发出的所有 shell 命令也在远程服务器上运行(这包括M-x compile


更新:1

当 TRAMP 挂起等待远程 shell 提示时(由于我仍然不清楚的原因,这往往会经常发生),我通常会终止底层ssh进程(htop使用树状视图是执行此操作的好工具)。TRAMP 注意到这一点并自动重新生成已终止的进程以恢复操作。

于 2012-11-23T16:30:12.323 回答
0

在远程服务器的控制台中运行 Emacs 不是更容易吗?所有 Emacs 功能都可以通过键盘访问,一旦您习惯了组合键,它通常会运行得更快。

这样,您将比转发 X 会话运行得更快 - 在控制台中运行是 Emacs 的设计目的。

作为额外的奖励 - 如果您习惯使用 Gnu 屏幕 - http://www.gnu.org/software/screen/ 您可以在连接断开时完全恢复会话。事实上,使用屏幕,您可以在一天结束时关闭您的笔记本电脑 - 第二天通过 SSH 登录并完全恢复前一天的所有“屏幕”。这将包括任何打开的编辑器、调试会话等。

Gnu screen 在 Debian 和可能大多数 Linux 发行版上作为一个包提供。

于 2013-07-25T16:28:50.537 回答