vim - 如何在vim中异步保存远程文件?

标签 vim asynchronous netrw

编辑远程文件

 vim scp://remote/file

使用 :w 保存文件会阻止编辑器,直到文件更改保存到远程。

我试图使用 :Dispatch :write 来避免被阻止,但这不起作用(使用 tmux 或 iterm 策略)。 :Dispatch 由插件 vim-dispatch 提供.

相关互联网搜索结果建议:

这些解决方案很有帮助,但需要设置 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/

相关文章:

java - Netflix Hystrix - HystrixObservableCommand 异步运行

vim - 为什么(Vim 插件)NetRW 浏览功能打不开目录和文件?

vim - 生成标签时"E426: tag not found error"

c# - 使用 lambda 表达式代替 Write 方法的异步版本

Angular 2 变化检测与 observables

vim - 使用 vim netrw 打开文件时跳转到最后位置

vim - 如何配置.vimrc以便在Vim的netrw中显示行号?

git - 使用 vim 作为 git difftool

vim:用行的第一个单词替换单词

vim - 如何轻松删除放置在另一个目录(vim)中的交换文件?