我喜欢Vim。但它现在给我很难的时间。
我使用了很多插件,在过去的6个月里,我发现了很多真棒的。但是我的Vim真的慢了。我做常量清理,但它没有帮助太多。
我在那里,Vim是完全不可用。感觉像它每秒2-5帧,切换标签/缓冲区大约一秒钟,用hjkl滚动是非常可怕的,滞后是如此糟糕,甚至在插入模式下输入一个句子是混乱(由于滞后)。
编辑:实际上,当我打开新的Vim实例的OK-ish,但在15分钟内,它变得不可用。
我刚刚花了4个小时试图找出哪个插件或配置导致的痛苦。我没有成功。
但是,我确实发现,删除此设置会导致所有的滞后:
语法on
这3行结合语法使一切更糟。
set t_Co=256 set background=dark colorscheme candyman
有趣。所以,语法高亮正在使Vim从超级snappy到令人难以置信的迟钝?
我试图在“干净”模式下启用语法:
vim -u NONE
它不是一个问题。
所以,似乎是一个问题是语法突出显示结合一个或多个我的插件。我试过禁用束,没有运气。
有什么办法做profiling吗?我手动测试相当耗尽。
有人有类似的经验吗?也许可以快速窥视我的.vimrc,看看有没有响铃。
https://bitbucket.org/furion/dotfiles
解:
导致混乱的插件是:
Bundle "gorodinskiy/vim-coloresque.git"
我建议阅读答案tho,好的见解。
编辑(1个月后):coloresque插件已经看到一些改进。
您有自动垃圾邮件。您应该将所有autocmd语句包含在清除组中的组中,然后重新添加autocmd。它看起来像你的.vimrc有大多数autocmds注释,所以也许有一个插件是导致的问题。检查此命令的输出:
:au CursorMoved
如果有一堆重复的处理程序,那是你的问题。
这里有一个从my .vimrc的autocmd学科的例子:
augroup vimrc_autocmd autocmd! "toggle quickfix window autocmd BufReadPost quickfix map <buffer> <leader>qq :cclose<cr>|map <buffer> <c-p> <up>|map <buffer> <c-n> <down> autocmd FileType unite call s:unite_settings() " obliterate unite buffers (marks especially). autocmd BufLeave \[unite\]* if "nofile" ==# &buftype | setlocal bufhidden=wipe | endif " Jump to the last position when reopening a file autocmd BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g`\"" | endif " ...etc... augroup END