在 Windows 机器上,使用 gVim。
我使用 Kitty 来作为 ssh 的 Putty 克隆版,除了名称之外,命令行命令完全相同。
在工作中,我使用 MacVim 从我的 Mac 连接许多 Linux 服务器。Netrw 工作得很好,我使用的是远程 Linux 机器上的 ssh 密钥。
我最常见的用例是:
:e sftp://user@host/subdir/
这将让我得到主目录下名为 subdir 的子目录的内容列表。从那里我可以向下查找直到找到我想要编辑的文件。
所以在家里我有一个 Windows 盒子(Windows 10 已完全更新)。gVim 8.1.1779 是一个非常新的版本。
如果我知道确切的名称,使用 scp 或 sftp 可以很好地编辑文件。我的 .vimrc 是:
let g:netrw_sftp_cmd= 'c:\Kitty\kscp.exe -agent -batch -q -sftp'
let g:netrw_scp_cmd= 'c:\Kitty\kscp.exe -agent -q -batch'
-agent 告诉它使用 kageant(pageant)作为我的 ssh 密钥的代理。
正如我所说,我可以毫无问题地获取我知道确切路径的文件。但如果我尝试使用我的常用模式来获取目录列表,则会失败。
我对 netrw 的了解有限,而谷歌搜索为我提供的帮助很少,设置如下:
let g:netrw_list_cmd = 'c:\Kitty\klink -T -ssh -agent -batch'
但它没有给我任何结果。我尝试了很多方法,但都失败了。我在这里和谷歌上找到的大多数文章都是 10 年前的,不再有效。
因此我尝试编写脚本并将其放入 netrw_list_cmd,但它并没有将 user@host 部分传递给我的脚本。
这个问题有解决吗?我是唯一一个使用 netrw 远程列出目录的人吗?并且使用 ssh 密钥?
谢谢
博杰尔
答案1
好吧,这些年来事情确实发生了变化。
Putty 不再是必需的,Windows 10 中已经内置了一个 OpenSSH 客户端。
我做的第一件事是将我的 id_rsa 添加到 c:/User/[用户名]/.ssh
如果你还没有安装 OpenSSH 客户端,请安装它,
网上有很多文章可以教你如何安装我有 Windows 10 Pro,因此 ssh-agent.exe 不会自动运行
转到任务管理器服务
OpenSSH 身份验证代理属性自动(延迟启动)不确定是否延迟但我读过文章。
现在启动cmd。
ssh-添加 C:/Users/[用户]/.ssh/id_rsa
从 .vimrc 中删除任何 let g:netrw 命令现在一切正常。
我希望以前有人说过