Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在复杂字符串后插入换行符时,Vim会有很大的延迟_Python_Vim_Archlinux - Fatal编程技术网

Python 在复杂字符串后插入换行符时,Vim会有很大的延迟

Python 在复杂字符串后插入换行符时,Vim会有很大的延迟,python,vim,archlinux,Python,Vim,Archlinux,当在可能被视为复杂的特定代码块末尾插入换行符时,Vim需要很长时间插入换行符(o,在正常模式下,或在插入模式下返回键) 我将如何确定原因并解决问题 个案资料: 在我的例子中,一个有问题的Python代码块如下所示,它包含多个双引号字符串中的单引号: for item in tree.xpath("//li"): a = item.xpath(".//div[contains(concat(' ', normalize-space(@class), ' '

当在可能被视为复杂的特定代码块末尾插入换行符时,Vim需要很长时间插入换行符(
o
,在正常模式下,或在插入模式下返回键)

我将如何确定原因并解决问题

个案资料: 在我的例子中,一个有问题的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 Phenom(tm)9550 2.2GHz 64位四核处理器,在Arch Linux上移动了.vimrc(因此使用Arch的vim默认值)。vim和gvim都受到影响

如果我复制粘贴定义变量的行5次,结果是大约48行,延迟是3秒长。增加到超过400行会导致相同的延迟,这让我假设已经达到超时


显示问题的视频:

可能与语法突出显示有关;检查延迟是否在
:syntax off
之后消失

如果您的Vim版本(最近的版本具有“巨大”的功能)支持
:syntime
命令,那么您可以深入研究;cp.
:帮助:syntime


这可能会出现一种导致缓慢的模式;然后,您将联系syntax插件作者(其地址/链接到问题跟踪器,您可以在脚本标题中找到:
$VIMRUNTIME/syntax/python.vim

如果将
set re=1
添加到
vimrc
(即,在打开文件之前)会有什么不同吗?在SatoKatsura对插件进行评测no@stark完成-我将这个问题改写为更一般的问题。