我在远程集群(linux OS)上有一个庞大的C ++代码库。当我需要从家用计算机(Ubuntu OS)处理此代码时,我尝试通过X windows上的emacs访问这些代码。然而,X窗口连接非常慢,使编辑过程变得很痛苦。所以我有时会在本地驱动器和远程群集之间手动移动文件来编辑文件。我的问题是:有没有办法配置我的本地emacs,这样当我在本地空间编辑文件时,它会自动备份到集群中然后可以编译?
更新:1
我安装了TRAMP,它适用于可以直接连接的服务器。但是我也有服务器,只有在我激活VPN时才可以连接。如何向TRAMP提供VPN信息以连接到该服务器?
我遇到的另一个问题是如何在等待来自远程shell的提示时停止TRAMP而不必杀死整个emacs缓冲区。
答案 0 :(得分:3)
这通常是TRAMP有用的用例。
不是使用SSH连接到服务器并使用X转发打开Emacs,而是在盒子上运行Emacs并使用TRAMP远程打开文件。例如:
C-X C-F /ssh:user@host:/remote/path/to/the/file
RET
这样,您的Emacs进程在本地运行,但所有文件操作(例如save,revert,...)都转发到服务器,从TRAMP缓冲区发出的所有shell命令也在远程服务器上运行(包括{ {1}})
<强>更新:1 强>
当TRAMP挂起等待远程shell提示(由于我仍然不明白的原因而经常发生)时,我通常会以树状视图杀死基础M-x compile
进程(ssh
这是一个很好的工具)。 TRAMP注意到这一点并自动重新生成被杀死的进程以恢复操作。
答案 1 :(得分:0)
在远程服务器的控制台中运行Emacs会不会更容易?所有Emacs功能都可以通过键盘进行访问,一旦习惯了按键组合,它通常可以更快地运行。
这样你运行得比转发X会话更快 - 在控制台中运行是Emacs的设计目的。
作为一个额外的好处 - 如果您习惯使用Gnu屏幕 - http://www.gnu.org/software/screen/,您可以完全按照连接下降时的方式接听会话。实际上,通过屏幕,您可以在一天结束时关闭笔记本电脑 - 第二天通过SSH登录并完全按照前一天的方式选择所有“屏幕”。这将包括任何开放式编辑器,调试会话等。
Gnu屏幕在Debian上可用,可能是大多数Linux发行版。