Vim python语法高亮显示挂起很长的行

Vim python语法高亮显示挂起很长的行,python,vim,syntax-highlighting,vim-syntax-highlighting,Python,Vim,Syntax Highlighting,Vim Syntax Highlighting,我有这个python脚本,在一行中有一个1000个字符长的字符串。我有语法高亮显示,vim挂在这条线上。如果我将文件扩展名改为C++,它就可以工作了。我怀疑语法突出显示插件的问题是导致挂起的原因 这个问题能解决吗?我使用的是vim版本7.4.52过长的行会显著降低vim的语法突出显示速度;通常,这是语法脚本的错误,您应该通知其作者(在$VIMRUNTIME/syntax/python.vim脚本头中找到) Vim 7.4包含:syntime命令,这大大有助于故障排除和查找有问题的正则表达式 将s

我有这个python脚本,在一行中有一个1000个字符长的字符串。我有语法高亮显示,vim挂在这条线上。如果我将文件扩展名改为C++,它就可以工作了。我怀疑语法突出显示插件的问题是导致挂起的原因


这个问题能解决吗?我使用的是vim版本7.4.52

过长的行会显著降低vim的语法突出显示速度;通常,这是语法脚本的错误,您应该通知其作者(在
$VIMRUNTIME/syntax/python.vim
脚本头中找到)

Vim 7.4包含
:syntime
命令,这大大有助于故障排除和查找有问题的正则表达式

将synmaxcol=…设置为低于默认值
3000

的值可能会有所帮助,因为Vim会挂起很长的行 首先确定是在您的
~/.vimrc
中,还是在vim命令
:scriptnames
显示的众多vim加载脚本中的一个脚本中减慢了速度。另请参见
:帮助脚本名称
。如果这是您的问题,则此命令将很快:

vim -u NONE hugefile.txt
-u NONE表示不使用任何用户配置脚本。您必须使用消除过程来确定语法突出显示、折叠、插件或其他类似磁盘错误、CPU节流、内存泄漏、虚拟内存耗尽、网络延迟或其他问题是否挂起。从~/.vimrc开始关闭stuff,并通过将命令
finish
放在脚本文件的顶部来禁用
:scriptnames
中的脚本

如果这不是很快,下一步决定是否有很长的队伍的问题。如果vim的缓冲区中呈现的行在viewpane中并且很长,那么vim将从磁盘上读取该行的每一个字符,然后在缓冲区的该行上施加
set wrap
,以便聚合命令工作。使用以下选项关闭所有设置:

vim -u NONE --cmd "set nowrap" hugefile.txt
--cmd
意味着在加载缓冲区之前运行该命令,这样vim就不用费心读取整行了。如果速度很快,那么您的问题是vim正在读取大于10MB的行,以便向缓冲区显示。不要那样做,你就不会有问题了

其他想法是消除
ft=
syn=
syntax off
以隔离whodunnit。我见过Vim8在5秒内从pcie nvme.m2 ssd打开15GB文件。同时提醒您升级到neovim

告诉vim帮助您确定哪个脚本占用的启动时间最多:

vi --startuptime log.out hugefile.txt
然后检查log.out并查看标记为占用时间最多的


有关vimscript函数和语句级别的自省和性能度量,请参见
:帮助分析
和我认为这是一个bug报告,并不是一个真正的问题。请参阅
:help bugs
将报告它,但现在我问它是否可以热修复用户端:)这是什么版本?它的vim版本7.4.52当然,我刚才已经这样做了,将长字符串拆分为短字符串之和,但我正在寻找一个永久的热修复程序,尽管听起来可能很有趣:)非常感谢,这就是我一直在寻找的答案:)