我可以从 ssh 连接“向后”桥接到本地 emacs 服务器吗?

我可以从 ssh 连接“向后”桥接到本地 emacs 服务器吗?

ssh我非常希望使用环境变量(或类似的变量)登录到远程计算机,$EDITOR以便能够在本地 Emacs 中进行编辑。在本例中,特别是当我登录并运行psql并使用\e psql命令编辑查询时。能够在本地 Emacs 中编辑它们对于我的工作流程来说是一个巨大的好处。

我一直怀疑这是不可能做到的,但在放弃之前我想我会把它扔在这里。

答案1

你实际上可以使用流浪汉:

TRAMP 代表“透明远程(文件)访问,多协议”。该软件包提供远程文件编辑,类似于Ange-FTP。不同之处在于,Ange-FTP 使用 FTP 在本地和远程主机之间传输文件,而 TRAMP 使用 rsh 和 rcp 的组合或其他类似工作的程序,例如 ssh/scp。

将这些行添加到您的~/.emacs文件中(来源):

(require 'tramp)
(setq tramp-default-method "scp")

然后您应该能够像这样打开远程文件:

emacs /remote.server.com:/remote/path/foo.txt

不过,特别是为了与该命令一起使用,psql您需要一些不同的东西。现在没有办法测试这个,但也许将 emacs 设置为本地 emacs 的别名可能工作。将此行添加到您的远程.bashrc文件中:

alias emacs='ssh user@local emacs'

答案2

emacs我对或不熟悉psql。但...

看起来您可以用来sshfs安装远程服务器并在本地执行所有操作:

sshfs user@host mount/directory/
cd mount/directory && emacs

如果需要在远程机器上运行命令,可以使用 挂载sshfs,然后使用sshthen访问使用 ssh 转义字符来暂停 ssh 会话并在您的计算机中运行 emacs(编辑使用 挂载的远程文件sshfs)。

另一种解决方案将会安装emacs在远程机器上并复制你的配置(我选择了这个解决方案,它聚合在 git repo 中,用于我的 vim 内容)

答案3

这不能按照您所描述的那样完成。您可以使用 SFTP(可能通过 FUSE)编辑远程系统上的文件。也许可以使用脚本和管道来做一些真正有创意的事情,但这不是内置功能。

相关内容