如何使用Emacs进行远程开发?

37

我几天前开始使用Emacs作为我的主要编辑器,目前正在收集我所需的所有自定义设置。

我主要用它来开发远程Linux机器(RHEL 5)上的C项目。到目前为止,我只是使用普通的vim(仅作为文本编辑器)和一堆shell脚本,有一天我决定尝试一下Emacs。到目前为止,我很喜欢它。

但是,不足之处在于设置环境以运行Emacs还需要花费很长时间,而我想尝试只从我的笔记本电脑使用它并进行远程开发,而不是直接在开发机器上使用它(并在每台使用的机器上设置环境)。

我知道TRAMP,但据我所知它只能编辑远程文件。最大的障碍是用单个按键在远程机器上运行shell命令(我将F5绑定为在远程机器的emacs上运行自定义编译命令)。

如何使用单个Emacs按键在远程机器上运行shell命令? 您是否了解其他全面远程开发的技巧和窍门?


你可以使用带有X11转发的SSH,在远程计算机上运行Emacs,并在你的计算机上显示它。 - Nifle
4
在Emacs 23.2中,当从TRAMP缓冲区运行“compile”命令时,它会自动成为远程编译。 - MarcH
13个回答

0

我有同样的需求:在 Windows 上运行 Debian 10 的虚拟机连接到 RHEL7 开发机器,这是我的解决方案。

首先,我使用 sshfs 挂载远程主目录,以一种保留本地机器路径的方式:shfs -o allow_other <remote-user-name>@<remote-host>:/home/<remote-host-home> /home/<remote-host-home>

其次,我配置 ssh,以便不需要反复输入密码:可以按照 this link 中的说明进行操作。

最后,我可以通过 M-x compile 启动编译,编辑命令并输入类似以下内容:ssh -C <remote-user-name>@<remote-host> "make -C <build-folder>"

它的好处是,当发现编译错误时,您可以单击链接,自动打开源文件。非常方便。


0

没有人提到的是将emacs运行在远程机器上,并使用相应于当前显示器的有效$DISPLAY变量。

显然,您必须为本地显示器运行X Server,但即使在Windows上也没有什么大不了的[使用Cygwin中内置的X Server]。

这通常需要网络延迟<50ms。如果您ping远程计算机并获得大于50ms的结果,则对此方法会感到沮丧。

低于这个值时,效果非常好。

您需要让SSH映射X端口,有很多相关文档可供参考。


-3
个人意见:如果带宽不是大问题,我会尝试使用VNC。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接