微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

使用编辑远程文件

vim scp://remote/file

使用以下命令保存文件:w阻止编辑器,直到文件更改保存到远程.

我试图使用:dispatch:写入以避免被阻止但是不起作用(使用tmux或iterm策略). :调度由插件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/scpautossh).
> 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中的sync函数.

function! s:Sync()
  call system("unison -batch /home/user ssh://user@server//home/user")
endfunction

command! Sync :call <SID>Sync()

使用unison同步文件的速度非常快,以至于我没有太多动力让它以异步方式运行.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐