2016-09-18 40 views
2

當插入到可能被認爲複雜的特定代碼塊末尾時,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://stackoverflow.com/a/12216578/471899 – Alik

回答

1

很可能涉及到語法高亮顯示;檢查:syntax off後延遲是否消失。

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

這可能會形成一個負責緩慢的模式;然後你會聯繫語法插件作者(其地址/鏈接問題跟蹤器,你可以在腳本的標題中找到:$VIMRUNTIME/syntax/python.vim