【发布时间】:2018-03-02 18:02:55
【问题描述】:
编辑远程文件
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//; set backupdir=~/.vim/backups - Neovim 还没有发布,并且每晚构建并没有开箱即用。 这里的任何答案表示赞赏。它已被报告为问题#1464
- Backchannel Vi
这些解决方案很有帮助,但需要设置 vcs、配置文件等。
我更喜欢
- 在本地工作
- 没有对每个文件进行配置(一次性配置编辑器就可以了)
- 并非每次写入都应该是一次提交。
保持 ssh 隧道打开也没有改善。
更新 我想知道是否有异步运行保存过程的解决方案。保存过程在这里意味着,正如 netrw 在命令行中显示的那样,将临时文件复制到远程的 scp 调用可能需要一些时间。同时我想回到我的编辑,不要被阻止。我希望这能让我的问题更清楚。
tpope/dispatch 的替代方案是: Shougo/vimproc,idbrii/AsyncCommand,我还没试过。
【问题讨论】:
-
那么……你在找什么?
-
@romainl:很明显我的问题的答案。提到 dispatch.vim 只是为了表明我的想法。它似乎不起作用。你还不明白我的意思吗?
-
谢天谢地,在 Vim 中没有异步的东西,所以无论你怎么看,你都需要第三方解决方案。您显然已经研究了您的主题,但“这很好,但不是我想要的。”没有告诉我们所有这些选项对您不起作用的方式。或者为什么你不在你的服务器上直接使用 Vim。或者为什么你不使用 VCS 或其他任何东西来代替牛仔编辑。
-
首先,我不想问我已经知道的事情。与在本地运行 vim 相比,直接在服务器上使用 vim 是滞后的。我真的很欣赏 vims 的响应能力。当我在服务器上运行 vim 时,我会丢失它。你能解释一下为什么你说'谢天谢地在 vim 中没有异步'。 Afaik neovim 是关于 vim 的异步扩展 (
Job control (work with processes asynchronously))。他们在这方面投入了大量时间。 -
现在您可能会说,您已经知道答案了。这不是真的。 Dispatch.vim 扩展了
:make,:write也可能有一些东西。
标签: vim asynchronous netrw