编辑远程文件
vim scp://remote/file
使用 :w
保存文件会阻止编辑器,直到文件更改保存到远程。
我试图使用 :Dispatch :write
来避免被阻止,但这不起作用(使用 tmux 或 iterm 策略)。 :Dispatch
由插件 vim-dispatch 提供.
相关互联网搜索结果建议:
- 通过 SSH 远程连接并在那里工作(如果连接速度较慢,check this question 或考虑 ssh-alternative mosh)
- eshion/vim-sync提供将本地文件的更改自动同步到远程的可能性
- Git hook auto-push:每次提交后将更改推送到远程
- satiani/async-scp-vim (详情请参见 blog )每当触发 BufWritePost 事件时启动 SCP 调用
- Ssh tunnel由于打开了 ssh 连接,写入速度更快(另请参阅 Speeding up Vim's Netrw plugin over ssh/scp 和 autossh )。
- sshfs/osxfuse-sshfs
set directory=~/.vim/swaps//;设置 backupdir=~/.vim/backups
- Neovim还没有发布,夜间构建也不能开箱即用。 这里的任何答案表示赞赏。已将其报告为问题 #1464
- Backchannel Vi
这些解决方案很有帮助,但需要设置 vcs、配置文件等。
我更愿意
- 在本地工作
- 每个文件无需配置(编辑器配置一次就可以了)
- 并非每次写入都应该是提交。
保持 ssh 隧道打开也没有改善。
更新 我想知道是否有异步运行保存过程的解决方案。正如 netrw 在命令行中显示的那样,保存过程在这里意味着将临时文件复制到远程的 scp 调用,这可能需要一些时间。与此同时,我想继续编辑,不要被阻止。我希望这能让我的问题更清楚。
tpope/dispatch 的替代品是: Shougo/vimproc , idbrii/AsyncCommand ,我还没有尝试过。
最佳答案
这是一个老问题,但我遇到了同样的问题,即如何有效地处理远程文件。
我的解决方案是使用 unison
动态同步文件。定义了一个命令来调用 vim 中的同步功能。
function! s:Sync()
call system("unison -batch /home/user ssh://user@server//home/user")
endfunction
command! Sync :call <SID>Sync()
使用 unison 同步文件的速度太快了,我没有太多动力让它异步运行。
关于vim - 如何在vim中异步保存远程文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28795721/