通过GVFS'FTP保存时GVIM挂起


5

我喜欢Gnome的Nautilus和FTP集成,并能够将远程FTP目录作为常规书签/目录安装,并双击任何远程文件以在任何未修改的程序中打开。我也喜欢用GVim编辑文本文件。

但是,如果我在Nautilus上双击文件以在Gvim中打开文本文件,则保存文件大约需要10秒钟,GVim将挂起一段时间。主要的刺激因素是,当文本编辑器等待写入完成时,我无法继续编辑,这种延迟中断了我的工作流程,思考过程和保存变成了一个痛苦的过程。另一个问题是我不认为上传文件应该花费那么多时间。

我知道GVim的内部FTP支持,但它们与Nautilus的FTP没有很好的集成,它也遇到了同样的问题。

所以有几个问题:

  1. 在我继续编辑时,有没有办法让GVim或GVFS在后台保存?
  2. 为什么GVFS这么慢?有没有办法将GVFS设置为使用单个持久FTP连接,而不是每次都创建新的FTP连接?

我在Gentoo Linux x86-64上。


我和Kate和SFTP在Ubuntu上有同样的问题(至少看起来像是同一个问题)。
user55325

Answers:


0

不幸的是,我认为你不会找到解决方案,至少不容易。我的理解是它是虚拟文件系统的一个功能 - 它会阻止写入,直到它们成功完成或失败,以便可以准确地报告给应用程序。

我(像用户55325)经历过Kate和SFTP,以及其他一些应用程序,它似乎就是它的工作方式。

鉴于我的VPN工作速度很慢,我不得不放弃在家工作时以这种方式编辑文件,而我不得不求助于大型项目的rsync。


0

一个假设你已经打折了 netrw插件 (至少在Debian和Ubuntu上)与Vim运行时一起分发。这似乎是正确的做事方式,除非您因某些原因需要文件看起来像本地文件。

如果要将远程文件视为本地文件,那么使用比gvfs更可配置的VFS系统可能会更好。例如,你可能会考虑 curlftpfs 要么 动静脉瘘 FUSE模块。前者肯定允许在连接超时时重新连接,并且记录得很清楚。

这听起来像你的问题是因为gVim认为你的文件不是本地文件,并且当I / O被阻塞等待FTP连接打开时它是正确的。使用维护持久连接的FUSE挂载或正确使用netrw插件,应该为您解决这些问题。

阻止写入失败的应用程序。软安装只应用于只读数据,因此即使Vim提供了这样的行为,依靠它也不是一个好主意。


正如我写的: I'm aware of GVim's internal FTP support, but they are not as well integrated as Nautilus's FTP and **it suffers from the same problem**. 另外,我认为写作时阻塞总是令人满意的;例如,Coda for Mac OSX允许您在后台上传文件时继续编辑文件;有一个微调器通知您保存仍在进行中,因此您知道何时检查结果(对于我编辑PHP文件的用例,我需要在浏览器上检查结果)。
Lie Ryan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.