一行太长时,Vim滚动得非常慢


23

我永远都不会想到Vim会这么慢。我只有以下几行:

在此处输入图片说明
(点击图片放大)

我在Mac OS X下使用终端应用程序运行Vim(MacVim)。这是我的vimrc。我希望它与我的某些插件无关。如果我断开图像中的大行,一切将再次快速运行。


+1。谢谢你的照片!那条线本身非常长。请记住,在DOS时代,CLI文本编辑器曾经将行数限制为255个字符。语法高亮显示要求监视每个HTML标签的打开和关闭,还监视每个双引号,然后监视每个变量。而且我敢肯定,每次在HREF标签中嵌套另一个标签时,编辑器都必须弄清楚这是什么意思。我已经看到emacs在突出显示VI没有问题的文本时遇到了问题:您也可以按需选择编辑器,就像我们对chrome,FF和臭名昭著的IE浏览器一样。
Vlueboy 2011年

Answers:


23

这是Vim和很长的行的已知问题。我看到三种解决方案:

  1. 使用关闭语法高亮显示:syntax off
  2. 将语法突出显示限制为:set synmaxcol=200或其他值。
  3. 用分解成小块的长行:s/\s<a/<C-v><Enter><a

在这种情况下,我建议使用解决方案3。


36

尝试以下操作:

" Syntax coloring lines that are too long just slows down the world
set synmaxcol=128

否则我建议通过以下方法来加速vim:

set ttyfast " u got a fast terminal
set ttyscroll=3
set lazyredraw " to avoid scrolling problems

2
+1。即使发问者未将其视为“最佳”答案,这也将很有用。
Vlueboy 2011年

2
Wow synmaxcol在markdown中撰写博客文章时发挥了如此大的作用。
Keith Smiley

lazyredraw为我做了把戏。即使没有任何插件,滚动浏览某些文件的速度也非常慢。vim和gvim都是这种情况。分析没有显示任何内容。
困惑,2014年

set synmaxcol=4096彻底解决了语法高亮显示在长行上被打断的问题:)
Jay Taylor

1

我认为您似乎设置了游标。我发现它曾经是滞后于我的vim的最大贡献者。您可能想尝试禁用它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.