当我滚动时,Vim 动作缓慢。当我连续按 j/k 时,光标会跳过一些行。
我正在使用 xterm 和 urxvt。在这两个 vim 中都是这样的。
这发生在本地,无论是小文件还是大文件。我确实使用 Control + F/B 他们工作得很好。
编辑:小文件中的 ttyfast 起到了作用,但在更大的文件中是一样的。在没有自定义的情况下运行时一切正常。
当我滚动时,Vim 动作缓慢。当我连续按 j/k 时,光标会跳过一些行。
我正在使用 xterm 和 urxvt。在这两个 vim 中都是这样的。
这发生在本地,无论是小文件还是大文件。我确实使用 Control + F/B 他们工作得很好。
编辑:小文件中的 ttyfast 起到了作用,但在更大的文件中是一样的。在没有自定义的情况下运行时一切正常。
:set lazyredraw
将缓冲屏幕更新而不是一直更新。我通常在进行复杂的宏播放时启用它。在这里可能会帮助你。
您是否尝试过“ttyfast”选项?看:
:help 'ttyfast'
寻求帮助,并且:
:set ttyfast
启用它。
另外,你用的是什么版本?您是否在没有自定义的情况下尝试过此操作,以查看您设置的内容是否存在干扰?
像这样运行它以省略任何 vimrc 设置和插件:
vim -u NONE
编辑:如果删除自定义修复它。迭代地删除事物,直到行为返回。首先将其缩小到 vimrc 问题或插件。
只有在使用带有 syntastic 的 pylint.vim 插件时,我才会遇到这个问题。我能找到的唯一有用的(除了禁用语法检查器)是禁用突出显示当前行:
:set cul!
这大大加快了我的滚动速度。
根据您使用的 Vim 版本,您可能会受到正则表达式重新计算错误的影响,其主要罪魁祸首似乎是突出显示光标行并显示相对行号:
set relativenumber
set cursorline
网络上到处都是报告此问题的线程(此处、此处和此处)。如果还使用语法高亮,这个问题似乎会更加严重。
就我个人而言,我只是relativenumber
通过将其添加到我的 vimrc 来禁用我的缓慢滚动问题:
set number
我的 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
如果其他建议不起作用,则可能是您的终端有问题。我在 Ubuntu 上的 gnome-terminal 滚动速度比使用相同文件的 PuTTY 慢得多。
如果您使用的是 Ubuntu 的默认 gnome-terminal,您可能需要尝试另一个终端程序。urxvt 都为我工作(终结者有类似的问题):
$ sudo apt-get install rxvt-unicode
$ urxvt
主要的缺点是它看起来不太好。你可以试试这里的建议让它看起来更好一点
参考:
编辑:似乎对我来说真正的解决方案可能是在使用 vim 时停止全屏显示我的终端。
迟到的答案,但以上并没有帮助我。
首先,找出确切的问题是什么,而不是胡乱地禁用随机的东西。Vim 有一个超级漂亮的分析器。
:help prof
会让你开始,但我做到了
:prof start ~/vim_profile
:prof func *
:prof file *
然后做了一堆超级慢的滚动。然后,
:prof exit
然后,您可以查看 vim_profile 并确切了解问题所在。在我的情况下,这是我通过添加修复的 matchparen
set noshowmatch
到 .vimrc,但对你来说可能会有所不同。
顺便说一句,在我对 vim 本身进行了调整之后,我能够通过使用不同的终端(iTerm2 或 Alacritty)而不是内置终端来进一步提高性能。
禁用括号突出显示后,我的滚动已修复。在 ~/.vimrc 中放:
let loaded_matchparen = 1
还要检查您的静默映射。j
如果您有以, k
,开头的映射h
,l
那么这也可能导致暂时滞后。
我在 Raspberry Pi 1 上运行 vim。禁用这一行加快了我的速度:
set foldmethod=syntax "slow!
我带着类似的滚动问题来到这里。我真的不想完全关闭语法高亮,所以我禁用了“set cursorcolumn”和“set cursorline”,我的滚动变得更快了。