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

+1

https://github.com/vim/vim – stark

+1

如果你有什么不同在您的'vimrc'中添加'set re = 1'(即在打开文件之前)? –

+2

配置您的插件http://*.com/a/12216578/471899 – Alik

很可能涉及到语法高亮显示;检查:syntax off后延迟是否消失。

如果您的Vim版本(最近的版本具有“巨大”功能)支持:syntime命令,您可以深入探索; CP。 :help :syntime

这可能会形成一个负责缓慢的模式;然后你会联系语法插件作者(其地址/链接问题跟踪器,你可以在脚本的标题中找到:$VIMRUNTIME/syntax/python.vim