我一直在使用vim over ssh工作一两个星期,一切都很顺利.今天我决定添加一些语法高亮,自动完成和其他一些通用插件.设置vundle并去上班.
我目前的.vimrc可以在https://github.com/scottopell/dotfiles/blob/master/.vimrc找到
我已将我的vimrc和vim文件克隆到我的本地ubuntu桌面上,vim运行完全符合预期,我找不到任何文件都没有慢.相同的插件和相同的vimrc,并且在ruby文件上没有慢.
更新
我可以使用以下.vimrc重现此问题
syntax on
Run Code Online (Sandbox Code Playgroud)
和一个空~/.vim文件夹.
但是,使用ruby/haml文件时,此vps上的vim非常慢.更多的红宝石文件.当我打开任何ruby文件时,启动大约需要2秒钟(使用--startuptime计时).使用可比较长度的haml文件,大约0.5秒.这种缓慢不仅仅是在启动时,移动和编辑文件都非常缓慢.
Haml/erb(它们基本相同)
268.818 000.005: before starting main loop
848.871 580.053: first screen update
Run Code Online (Sandbox Code Playgroud)
红宝石
199.613 000.004: before starting main loop
2937.859 2738.246: first screen update
Run Code Online (Sandbox Code Playgroud)
没有语法突出显示在上面相同的ruby文件上
149.047 000.004: before starting main loop
152.912 003.865: first screen update
Run Code Online (Sandbox Code Playgroud)
我尝试过使用mosh(http://mosh.mit.edu)并没有帮助. 不再那么相关了
正如您在我的.vimrc文件中看到的,我已经尝试了一些不同的解决方案来解决这个问题.我已经尝试禁用所有插件运行(我将它们全部移动~/vim/bundle/PLUGINNAME到~/vim/bundle/disabled/PLUGINNAME,这是正确的吗?),设置ruby路径,将foldlevel设置为手动,禁用我的colorscheme,没有任何帮助. 见edit3
我可以发布任何文件的完整startupttime日志,如果这将有所帮助.
我已经测试了一些其他语言(php,c,python,vimL),没有经历任何减速.
编辑:只是为了澄清,我正在运行ssh user @ server的ssh会话然后一次在服务器内我正在做vim file.rb.
EDIT2:我只是尝试直接访问服务器,并且缓慢持续没有ssh,我已经更新以反映这不是ssh的问题.
编辑3:我可以使用.vimrc文件重现该问题,该文件包含syntax on带有空〜/ .vim文件夹的单行
EDIT4 我卸载了我的编译版本的vim以及我可能通过apt安装的任何版本,手动删除了我系统中的所有vim内容,我可以运行vim vim …
我在MacVim 7.4上(我使用命令行版本),通过Homebrew安装.
当语法突出显示Ruby代码时,Vim很慢.htop在vim中移动Ruby文件时显示80%-100%的CPU使用率.
我在SO上找到了这些:
并尝试了提出的解决方案.我做了什么:
set regexpengine=1: 没有改变.CPU使用率仍然很高,性能也很慢.set lazyredraw:事情变得更好,但权衡非常明显(光标在移动时消失)autocmd陈述.vimrc,发现没什么特别慢的.我尝试删除所有插件但问题仍然存在.我尝试关闭语法,好吧,它解决了问题.另外,启动vim vim -u NONE然后转向syntax on解决问题,所以它一定是.vimrc我想的东西?
这是我的链接vimrc.
我可能已经找到了有罪的设置.似乎有两个设置明显减慢了vim中的移动:
set relativenumberset cursorline请注意,这两个设置都会单独触发此行为.
当滚动按住j或时,这些设置强制vim在屏幕上重绘相当多的东西k.我怀疑这里有解决方案,但我对任何事情都持开放态度.
请注意,relativenumber并cursorline在Ruby文件使用时才触发这种行为.无论多长时间,我尝试过的所有其他文件类型(with relativenumberand cursorlineon)都可以顺利滚动.
当我在大型C文件(约8000行)中启用语法时,完成ctrl-p和ctrl-n的速度非常慢(超过20)。当我关闭语法时,完成时间不到一秒钟。
我想出了一种再现这种行为的最小方法。使用一个空的.vim文件夹并仅使用以下几行创建一个.vimrc:
set syntax on
set foldmethod=syntax
Run Code Online (Sandbox Code Playgroud)
当您打开一个大的C文件时,完成(甚至是常规编辑)的速度非常慢。
编辑:
此行为是由于我使用的是Beta版本。我不确定是否应该完全删除此问题,还是将其留给其他人也有同样问题的线索。