好吧,也许以前有人问这个,但是我搜索并且没有扔任何东西,所以我在这里抓住机会.
我在Windows 7 64位上使用最新的vim(gvim 7.3).
我有一些远程文件,我想用vim直接编辑,使用netrw.
现在,由于Putty,Pageant和公钥/私钥,我有一个完全工作的透明ssh连接到我的远程主机.
我已经使用这些修复成功设置了对远程文件的读/写访问权限:
#### .vimrc ####
let g:netrw_cygwin= 0
let g:netrw_scp_cmd = 'c:\"Program Files (x86)"\PuTTY\pscp.exe -q -batch'
let g:netrw_sftp_cmd= '"c:\"Program Files (x86)"\PuTTY\psftp.exe'
Run Code Online (Sandbox Code Playgroud)
然后我可以访问一个文件:
:e scp:\\user@host:port\\home\me\some-file.txt
Run Code Online (Sandbox Code Playgroud)
并且,每次我访问远程文件时,Vim都会运行Windows提示符(cmd.exe):
C:\Windows\system32\cmd.exe /c c:\"Program Files (x86)"\PuTTY\pscp.exe -q -batch
-P 22 "C:\Users\me\AppData\Local\Temp\VIF215E.tmp" "user@host:/home/me/some-file.txt"
Hit any key to close this window...
Run Code Online (Sandbox Code Playgroud)
我的问题是每次打开/写入文件时在Vim外面敲一个键根本就没有效率.
所以我的问题是(是):
非常感谢和快乐的vimming.
编辑:注意对自己过去:哥们,刚与Linux和香草的gvim/SSH去.你以后会感谢我(看看spf13-vim)
这些是我今天的工作(Win 7 中的 gVim 7.3)(花了我很多小时才终于工作起来):
set nocompatible
let g:netrw_cygwin = 0
let g:netrw_list_cmd = "plink.exe -P ##### -pw MyPass user@host.com ls -Fa "
let g:netrw_ssh_cmd = "plink -T -ssh"
let g:netrw_scp_cmd = "pscp -P ##### -pw MyPass -scp"
let g:netrw_sftp_cmd = "pscp -pw MyPass -sftp"
or
let g:netrw_sftp_cmd = "psftp -P ##### -pw MyPass user@host.com"
Run Code Online (Sandbox Code Playgroud)
使用第一个命令时,请确保 -Fa 之后有一个 [空格],否则会出现错误。然后你可以通过以下方式在 Vim 中连接
:e scp://user@host:port#/(path to file)
:e sftp://user@host:port#/(path to file)
Run Code Online (Sandbox Code Playgroud)
我希望这可以帮助一些努力解决这个问题并使其发挥作用的 Vimmer。干杯!
这似乎有点太复杂了。
我在 Linux 上使用 SSHFS 来完成此任务。它允许您通过 SSH 在本地安装远程路径。
现在 Windows 也可以使用类似的东西: http: //dokan-dev.net/en/。它应该消除 Vim 端所有修改的需要。