Vim在复杂字符串后面插入换行符时的巨大延迟
问题描述:
当插入到可能被认为复杂的特定代码块末尾时,Vim花费了一个令人烦恼的长时间插入换行符(正常模式下的o
或插入模式下的返回键) 。Vim在复杂字符串后面插入换行符时的巨大延迟
我该如何去确定原因并解决问题?
具体案件的信息:
我我的情况下,有问题的Python代码块如下,其中包含双引号字符串多单引号:
for item in tree.xpath("//li"):
a = item.xpath(".//div[contains(concat(' ', normalize-space(@class), ' '), ' alpha ')]/text()")[0]
b = item.xpath(".//div[contains(concat(' ', normalize-space(@class), ' '), ' betahaus ')]/text()")[0]
c = item.xpath(".//div[contains(concat(' ', normalize-space(@class), ' '), ' capitalism ')]/text()")[0]
d = item.xpath(".//div[contains(concat(' ', normalize-space(@class), ' '), ' doughnuts-of-the-realm ')]/a")[0].attrib['href']
g = item.xpath(".//span[contains(concat(' ', normalize-space(@type), ' '), ' dontcare ')]/text()")[0]
h = item.xpath(".//span[contains(concat(' ', normalize-space(@type), ' '), ' foo ')]/text()")
延迟小于一第二但显而易见。
该机器是AMD羿龙™9550 2.2GHz,64位四核处理器,这是在Arch Linux上移动.vimrc(因此使用Arch的vim默认设置)。 vim和gvim都受到影响。
如果我复制粘贴定义变量的行5次,导致约48行,则延迟时间为3秒。增加到400多条线导致相同的延迟,这让我认为有一个超时正在达到。
显示问题视频:https://youtu.be/rCSfSASrZjQ
答
很可能涉及到语法高亮显示;检查:syntax off
后延迟是否消失。
如果您的Vim版本(最近的版本具有“巨大”功能)支持:syntime
命令,您可以深入探索; CP。 :help :syntime
。
这可能会形成一个负责缓慢的模式;然后你会联系语法插件作者(其地址/链接问题跟踪器,你可以在脚本的标题中找到:$VIMRUNTIME/syntax/python.vim
。
https://github.com/vim/vim – stark
如果你有什么不同在您的'vimrc'中添加'set re = 1'(即在打开文件之前)? –
配置您的插件http://*.com/a/12216578/471899 – Alik