vim语法性能很长的行

时间:2014-11-08 09:26:06

标签: vim markdown vim-plugin

我使用vim编辑包含很长行(100000)的markdown文件 字符)。这种输入对Vim来说非常慢。如果我关闭语法 突出显示(:syntax off),Vim不再慢了。

长度的原因是某些代码块包含json 包含以base64编码的图像。 (实际上,我正在尝试编辑ipython笔记本的markdown version。)

以下是有问题的文字:

```{.json .output n=41}                                                                                                                                                                                              
[                                                                                                                                                                                                                    
{                                                                                                                                                                                                                   
"metadata": {},                                                                                                                                                                                                    
"output_type": "display_data",                                                                                                                                                                                     
"png": "iVBORw0KGgoAAAANSUhEUgAAAtAAAAFxCAYAAAB....long...long....line...."
}                                                                                                                                                                                                                   
]                                                                                                                                                                                                                    
```        

我想要的是让Vim不要慢。

我想到的可能的解决方案:

  1. set synmaxcol=250 - 不,在长行后突破语法高亮显示

  2. 有选择地禁用长行语法突出显示(不确定如何操作) 此)

  3. 禁用以{.json开头的代码块的语法突出显示(不要 知道如何)

  4. 我正在使用vim-pandoc 语法荧光笔。这为代码块提供了语法组 pandocDelimitedCodeBlock或者例如如果你转过来pandocDelimitedCodeBlock_json 语言检测。

    这也意味着我在语法组(foldmethod=syntax)上进行折叠 可能是缓慢的原因(请参阅stackoverflowgithubsuperuser)。 但是,:set foldmethod=manual无法解决问题。

2 个答案:

答案 0 :(得分:1)

vim-pandoc广泛使用语法折叠,我很确定这是问题所在。禁用vim-pandoc语法并关闭折叠(let g:pandoc#modules#disables = ['folding'])会使vim再次快速。

对于语法高亮,我使用了tpope vim-markdown的分支。我分叉了它,因为原文没有语法高亮显示具有pandoc样式属性的代码块(拉取请求here)。

使用foldexpr折叠标题围栏代码块时,我使用了vim-markdown-folding的分支。分叉是因为原始文件没有折叠在代码块上(拉取请求here)。

虽然这并没有真正回答我的问题(我同意这个问题没有明确定义),但它确实解决了我的问题。

答案 1 :(得分:0)

这对我有用:

let g:pandoc#modules#disabled = ["folding"]

与@ aaren的答案相同,但是双引号。