使用来自多个(虚拟)计算机的单个emacs实例

使用来自多个(虚拟)计算机的单个emacs实例,emacs,remote-access,emacsclient,Emacs,Remote Access,Emacsclient,我喜欢EmacClient。它允许我使用单个Emacs框架进行所有编辑,也允许程序打开编辑器(即导出编辑器=EmacClient) 我也希望虚拟机也能像这样工作。在我的单帧设置中,我可以使用tramp用Emacs编辑远程文件,它工作得很好,但还不够。当我调用git commit或sudoedit时,我将不得不使用碰巧安装在远程机器上的糟糕的基于终端的编辑器 那么,有没有类似EmacClient的东西可以跨多台机器工作呢?推测:如果您可以通过ssh从VM返回到您的本地机器,那么VM可能会在您的本地

我喜欢EmacClient。它允许我使用单个Emacs框架进行所有编辑,也允许程序打开编辑器(即
导出编辑器=EmacClient

我也希望虚拟机也能像这样工作。在我的单帧设置中,我可以使用tramp用Emacs编辑远程文件,它工作得很好,但还不够。当我调用
git commit
sudoedit
时,我将不得不使用碰巧安装在远程机器上的糟糕的基于终端的编辑器


那么,有没有类似EmacClient的东西可以跨多台机器工作呢?

推测:如果您可以通过ssh从VM返回到您的本地机器,那么VM可能会在您的本地机器上调用EmacClient,并为远程文件添加适当的tramp前缀?为此设置一个脚本,并配置与之匹配的远程编辑器环境变量。

使用TRAMP可能比您想象的做得更多。首先,您可能已经注意到/sudo:不适用于远程盒子,但TRAMP允许您代理到远程盒子,然后使用任何支持的协议,因此实际上您可以在远程盒子上使用/sudo:。请参阅
tramp默认代理列表


您提到在远程框上调用git commit。您是否考虑过使用诸如magit之类的Emacs git接口?他们也将通过TRAMP工作。

哇,这是一个令人惊讶的想法,而且很有效!我突然想出了这样一个剧本,看,太好了。我可能得自己试试这个:)+1。即使无法从VM用ssh连接回本地机器,也可以这样做。您可以通过TCP运行Emacs服务器,使用ssh-R将端口转发回本地机器,然后告诉EmacClient通过该端口进行连接。详情请参阅和。