在Windows共享上编辑文件时,GVim的运行速度非常慢

bsh*_*ett 12 vim performance networking

在我的计算机工作中,每当我打开位于网络共享上的文件时,GVim就会变得完全无法使用.滚动文档可能需要15秒才能进入一个"页面".即使使用移动键从一个单词转到另一个单词也需要2到3秒.这似乎是一种新的行为,但对于我的生活,我记不起改变会导致它的任何事情.我的印象是Vim实际上并没有访问文件,除了打开和保存.是对的吗?

jam*_*san 10

有几个因素可能会影响这一点.

首先,确保您已将Vim设置为首选在本地存储交换文件.如果你$HOME在本地驱动器上,我倾向于把它放在我的vimrc中(它将在$HOME\_vimrc$VIM\_vimrc).确保创建该目录,否则Vim将继续使用列表中的其他目录之一.

set directory^=$HOME/tmp
Run Code Online (Sandbox Code Playgroud)

这会将$HOME/tmp目录添加到列表的开头,Vim会检查交换文件的放置位置.

其次,对Vim创建的备份文件执行相同操作.与上述情况相同,但您将要更改的选项backupdir不是directory.

第三,确保禁用matchparen插件.此插件是Vim 7的新增功能,因此您可能习惯使用旧版本的Vim.这导致频繁扫描文件以匹配parens,braces等,当文件在网络共享上时,这可能会大大降低Vim的速度.再次,这应该在你的vimrc中.

let g:loaded_matchparen = 1
Run Code Online (Sandbox Code Playgroud)

如果您只想暂时禁用该插件,可以使用该命令:NoMatchParen,然后:DoMatchParen在该Vim会话中重新启用它.

最后,如果这些都没有帮助,您可以始终在本地复制文件并进行编辑.


Dav*_*son 5

交换文件与它无关.我有我的交换文件本地,仍然有问题.我使用来自SysInternals.com的Process Monitor,它在尝试打开"\ server\TestTool\foo\ReadMe.TXT"时显示出不良行为

它首先尝试在"\ serve \"上创建一个CreateFile(也称为目录打开).注意最后一个字符丢失了.这将导致4秒超时"OBJECT PATH INVALID".

然后它在"\ server\TestToo \"上尝试CreateFile.通过"TestTool"的最后一个字母剪切服务器名称是正确的.再次,"BAD NETWORK NAME"暂停3秒.

最后它正确并在"\ server\TestTool \"上调用CreateFile,它立即可用.然后在"\ server\TestTool\foo"上的CreateFile立即生效.然后在"\ server\TestTool\foo\ReadMe.TXT"上创建CreateFile,它立即可用.

为什么它为服务器和根目录尝试坏名称??? 这有什么疯狂的?

  • 我下载了源代码并发现了问题.他们正在使用FindFirstFile(),它不应该用在根目录或网络共享上.vim中的bug.我打算尝试修理它. (4认同)