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
,然后使用ssh
then访问使用 ssh 转义字符来暂停 ssh 会话并在您的计算机中运行 emacs(编辑使用 挂载的远程文件sshfs
)。
另一种解决方案将会安装emacs
在远程机器上并复制你的配置(我选择了这个解决方案,它聚合在 git repo 中,用于我的 vim 内容)
答案3
这不能按照您所描述的那样完成。您可以使用 SFTP(可能通过 FUSE)编辑远程系统上的文件。也许可以使用脚本和管道来做一些真正有创意的事情,但这不是内置功能。