ico*_*ast 3 shell bash scp sftp zsh
曾几何时,我记得做过大致类似这样的事情:
vimdiff <(scp://some_server/home/user/.zshrc) <(scp://some_server-qa/home/user/.zshrc)
Run Code Online (Sandbox Code Playgroud)
(其中some_server
和some_server-qa
是在我的~/.ssh/config
用户和密钥等中定义的,因此不必将其包含在 shell 中)。
问题是我无法弄清楚需要什么语法才能完成这项工作,并且我无法通过谷歌搜索找到任何内容。我确信这里有人知道我错过了什么。我缺少什么?
vim
确实支持使用某些 URL 打开远程文件,因此您可以执行以下操作:
vimdiff scp://some_server{,-qa}/home/user/.zshrc
Run Code Online (Sandbox Code Playgroud)
输入文档:h scp
内的内容。vim
如果在构建时尚未启用该支持,您始终可以这样做:
vimdiff -R <(ssh some_server cat /home/user/.zshrc) \
<(ssh some_server-qa cat /home/user/.zshrc)
Run Code Online (Sandbox Code Playgroud)
尽管您将无法修改远程文件。
这-R
是为了vim
提醒您编辑这些文件是没有意义的(尽管您总是可以这样做::w !ssh host 'cat > file'
将编辑后的文件发回(或者只是:w !ssh host '>file'
如果您的登录 shellhost
也恰好在默认情况zsh
下))。$NULLCMD
cat