使用Vim时,我能做些什么来保持syntax on吗?每次按键都会导致延迟。如果关闭语法高亮显示或重新启动vim –很好。

我将synmaxcol设置为120。示例ruby文件只有59行,不超过80个字符。 />我正在使用vim-rubyvim-rails

问题是延迟似乎随着时间的推移而累积。当我从头开始打开文件时就可以了。过了一会儿,它变得越来越慢。

评论

您是否尝试使用vim -Nu NONE -c'syntax on'复制此文件?您是否已遵循本文上的调试提示

什么文件类型?有吗?

红宝石。实际上,它可以使用-u NONE进行编辑,因此它必须是某些插件。猜猜大多数问题的答案是“禁用插件,直到找到罪魁祸首” :(

但是问题是-延迟似乎随着时间的推移而累积。当我从头开始打开文件时就可以了。过了一会儿,它变得越来越慢。

#1 楼

最新的Vim版本具有:syntime命令,可通过生成每个语法组匹配所需时间的报告来解决语法高亮显示的速度问题。这非常有帮助,可以迅速让您找到罪魁祸首。唯一的缺点是您需要一个(通常是“巨大”)Vim构建并启用了性能分析。 :help :syntime提供了很好的使用说明。在脚本中。

评论


嗯,很有趣,听起来像是标签相关的东西。花费时间最多的最顶行有我其他项目中的方法。总计匹配最低平均名称模式0.129674 247 182 0.002365 0.000525 ruby​​MethodNameTag \ C \ <\%(roi \ | paginate \ | admin_index_attributes \ | facilities \ | manager \ | net_price?\ .... –显然是来自其他文件夹禁用标签?

– firedev
2015年4月10日在8:24



您是否使用突出显示标签的插件,例如vim-easytags?这确实可能导致速度下降。

– Ingo Karkat
2015年4月10日在8:27

是的,禁用它,不是数字再次变得理智。谢谢。

– firedev
2015年4月10日在8:29

嗯,现在它又开始运转了,这次是:0.121880 2078 54 0.002260 0.000059 ruby​​Symbol []})\“':] \ @ <!\%(\ h \ | [^ \ x00- \ x7F] \)\%( \ w \ | [^ \ x00- \ x7F] \)* [!?] \ =:[[:space:],] \ @ = –我能做些什么?

– firedev
2015年4月10日9:42



可能是新的正则表达式引擎;尝试:set regexpengine = 1(最好在新的Vim实例中,然后打开Ruby文件)。

– Ingo Karkat
2015年4月10日在9:54

#2 楼

vim语法突出显示中的另一个典型瓶颈是折叠。如果折叠包含许多语法项(这基本上意味着它要跨越多行),则编辑可能会变得非常缓慢,因为vim会刷新每个插入字符的所有语法。

我建议使用FastFold插件。该插件可以识别语法折叠并将其替换为手动折叠,从而使vim的语法突出显示更快。

#3 楼

这是我最后做的事情:


删除了xolox/vim-easytags

删除了xolox/vim-misc

替换了
kien/ctrlp d11wtq/ctrlp_bdeletetacahiroy/ctrlp-funky
junegunn/fzf
设置regexpengine=1


现在,Vim像黄油一样光滑,但是我没有标签了。 igh ...

评论


Vim具有内置的标签支持。您不需要任何第三方插件(当然除了ctags可以生成标签文件)。请参阅Tim Pope撰写的《使用Git轻松实现Ctags》。我用它,它使奇迹产生。另请参阅:help tag-commands跳转到标签。在使用Vim时,我认为ctags非常重要。它使导航变得非常简单,甚至可以使用:help i_Ctrl-x_Ctrl-]自动完成!

–akshay
2015年4月12日9:41



小心在此处添加任何内容vi.stackexchange.com/questions/2630/how-to-set-up-tags-properly吗?

– firedev
2015年4月12日在10:49