48

当我滚动时,Vim 动作缓慢。当我连续按 j/k 时,光标会跳过一些行。

我正在使用 xterm 和 urxvt。在这两个 vim 中都是这样的。

这发生在本地,无论是小文件还是大文件。我确实使用 Control + F/B 他们工作得很好。

编辑:小文件中的 ttyfast 起到了作用,但在更大的文件中是一样的。在没有自定义的情况下运行时一切正常。

4

10 回答 10

85

:set lazyredraw将缓冲屏幕更新而不是一直更新。我通常在进行复杂的宏播放时启用它。在这里可能会帮助你。

于 2008-12-18T19:42:02.967 回答
44

您是否尝试过“ttyfast”选项?看:

:help 'ttyfast'

寻求帮助,并且:

:set ttyfast

启用它。

另外,你用的是什么版本?您是否在没有自定义的情况下尝试过此操作,以查看您设置的内容是否存在干扰?

像这样运行它以省略任何 vimrc 设置和插件:

vim -u NONE

编辑:如果删除自定义修复它。迭代地删除事物,直到行为返回。首先将其缩小到 vimrc 问题或插件。

于 2008-11-20T22:45:21.203 回答
20

只有在使用带有 syntastic 的 pylint.vim 插件时,我才会遇到这个问题。我能找到的唯一有用的(除了禁用语法检查器)是禁用突出显示当前行:

:set cul!

这大大加快了我的滚动速度。

于 2015-12-03T20:09:24.927 回答
12

Vim 上的正则表达式重新计算错误

根据您使用的 Vim 版本,您可能会受到正则表达式重新计算错误的影响,其主要罪魁祸首似乎是突出显示光标行并显示相对行号:

set relativenumber
set cursorline

网络上到处都是报告此问题的线程(此处此处此处)。如果还使用语法高亮,这个问题似乎会更加严重。

就我个人而言,我只是relativenumber通过将其添加到我的 vimrc 来禁用我的缓慢滚动问题:

set number

我的 Vim

我的 Vim 是 Debian 7.9 上的 vim-nox 软件包版本 2:7.3.547-7 提供的。:version在 Vim 中键入会产生:

VIM - Vi IMproved 7.4(2013 年 8 月 10 日,2014 年 12 月 11 日 03:17:52 编译)

包含的补丁:1-488

于 2015-12-08T15:09:03.377 回答
4

如果其他建议不起作用,则可能是您的终端有问题。我在 Ubuntu 上的 gnome-terminal 滚动速度比使用相同文件的 PuTTY 慢得多。

如果您使用的是 Ubuntu 的默认 gnome-terminal,您可能需要尝试另一个终端程序。urxvt 都为我工作(终结者有类似的问题):

$ sudo apt-get install rxvt-unicode
$ urxvt

主要的缺点是它看起来不太好。你可以试试这里的建议让它看起来更好一点

参考:

编辑:似乎对我来说真正的解决方案可能是在使用 vim 时停止全屏显示我的终端。

于 2013-04-11T17:30:40.473 回答
3

迟到的答案,但以上并没有帮助我。

首先,找出确切的问题是什么,而不是胡乱地禁用随机的东西。Vim 有一个超级漂亮的分析器。

:help prof

会让你开始,但我做到了

:prof start ~/vim_profile
:prof func *
:prof file *

然后做了一堆超级慢的滚动。然后,

:prof exit

然后,您可以查看 vim_profile 并确切了解问题所在。在我的情况下,这是我通过添加修复的 matchparen

set noshowmatch

到 .vimrc,但对你来说可能会有所不同。

顺便说一句,在我对 vim 本身进行了调整之后,我能够通过使用不同的终端(iTerm2 或 Alacritty)而不是内置终端来进一步提高性能。

于 2021-05-19T03:45:13.590 回答
2

禁用括号突出显示后,我的滚动已修复。在 ~/.vimrc 中放:

let loaded_matchparen = 1
于 2014-04-17T22:40:59.277 回答
1

还要检查您的静默映射。j如果您有以, k,开头的映射hl那么这也可能导致暂时滞后。

于 2021-03-05T15:46:37.750 回答
0

我在 Raspberry Pi 1 上运行 vim。禁用这一行加快了我的速度:

set foldmethod=syntax  "slow!
于 2020-12-28T01:18:31.403 回答
0

我带着类似的滚动问题来到这里。我真的不想完全关闭语法高亮,所以我禁用了“set cursorcolumn”和“set cursorline”,我的滚动变得更快了。

于 2021-10-13T18:25:24.907 回答