当我滚动时,Vim表现得很慢。当我连续按j / k时,光标会跳过一些行。
我正在使用xterm和urxvt。在这两个vim行为中。
这在本地发生,包含小文件或大文件。我确实使用Control + F / B它们工作正常。
编辑:小文件中的ttyfast做了伎俩,但更大的是相同的。在没有自定义的情况下运行时,它就没事了。答案 0 :(得分:82)
:set lazyredraw
将缓冲屏幕更新,而不是一直更新。我通常在进行复杂的宏播放时启用它。可能会帮助你。
答案 1 :(得分:36)
你试过'ttyfast'选项吗?参见:
:help 'ttyfast'
寻求帮助,并且:
:set ttyfast
启用它。
另外,您使用的是哪个版本?您是否尝试过此操作而不进行自定义以查看您设置的内容是否存在干扰?
像这样运行以省略任何vimrc设置和插件:
vim -u NONE
编辑:如果删除自定义项修复了它。迭代删除内容直到行为返回。首先将其缩小到vimrc问题或插件。
答案 2 :(得分:19)
只有在使用带有syntastic的pylint.vim插件时才出现此问题。我能找到的唯一有帮助的(除了禁用语法检查器)是禁用突出显示当前行:
:set cul!
这显着加快了我的滚动速度。
答案 3 :(得分:10)
根据您使用的Vim版本,您可能会受到正则表达式重新计算错误的影响,其主要罪魁祸首似乎是突出显示光标线并显示相对行号:
set relativenumber
set cursorline
网络散布着报告此问题的主题(here,here和here)。如果还使用语法突出显示,则问题似乎会加剧。
我个人通过将relativenumber
添加到我的vimrc中来解决我的慢滚动问题:
set number
我的Vim是由Debian 7.9上的vim-nox软件包版本2:7.3.547-7提供的。在Vim中输入:version
会产生:
VIM - Vi IMproved 7.4(2013年8月10日,2014年12月11日编译03:17:52)
包含的补丁:1-488
答案 4 :(得分:4)
如果其他建议不起作用,则可能是您的终端出现问题。我在Ubuntu上的gnome-terminal使用相同的文件滚动比PuTTY慢得多。
如果您使用的是Ubuntu的默认gnome-terminal,您可能需要尝试其他终端程序。 urxvt都适合我(终结者有类似的问题):
$ sudo apt-get install rxvt-unicode
$ urxvt
主要缺点是它看起来不太好。您可以尝试使用建议here以使其看起来更好一些
参考文献:
编辑:对我来说,真正的解决方案似乎是在使用vim时停止对我的终端进行全面筛选。
答案 5 :(得分:1)
禁用括号突出显示后,我的滚动已修复。在〜/ .vimrc中:
let loaded_matchparen = 1
答案 6 :(得分:0)
我在 Raspberry Pi 1 上运行 vim。禁用这一行可以加快速度:
set foldmethod=syntax "slow!
答案 7 :(得分:0)
还要检查您的静默映射。如果您有以 j
、k
、h
、l
开头的映射,那么这也可能会导致暂时滞后。
答案 8 :(得分:0)
迟到的回答,但以上对我没有帮助。
首先,弄清楚确切的问题是什么,而不是因为禁用随机内容而烦恼。 Vim 有一个超级漂亮的分析器。
:help prof
会让你开始,但我做到了
:prof start ~/vim_profile
:prof func *
:prof file *
然后做了一堆超慢的滚动。之后,
:prof exit
然后您可以查看 vim_profile 并确切了解问题所在。就我而言,这是我通过添加修复的 matchparen
set noshowmatch
到 .vimrc,但对你来说可能不同。
顺便说一句,在我对 vim 本身进行调整后,我能够通过使用不同的终端(iTerm2 或 Alacritty)而不是内置终端来进一步提高性能。