2014-11-08 37 views
0

我使用vim編輯包含一些非常長的行(100000 字符)的降價文件。 Vim用這種輸入很慢。如果我關閉突出顯示(:syntax off)的語法 ,則Vim不再緩慢。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開頭的代碼塊的語法高亮顯示( 知道如何)

我使用vim-pandoc 語法高亮顯示。這給出了代碼塊語法組 pandocDelimitedCodeBlock或者例如pandocDelimitedCodeBlock_json如果您在語言檢測上關閉 。

這也意味着,我摺疊上的語法組(foldmethod=syntax),其 是緩慢的一種可能的來源(參見stackoverflowgithubsuperuser)。 但是,:set foldmethod=manual不能解決問題。

+0

你有軟線包裝啓用?另一個想法:你的書的讀者可能也不會喜歡排長隊,你真的需要他們嗎? – mb21 2014-11-08 12:28:34

+1

'set synmaxcol = {low value}'是唯一實用的解決方案:您不希望語法突出顯示那些二進制blob。 – romainl 2014-11-08 12:39:07

+0

@ mb21沒有軟包裝。長線只在生產中出現 - 它們在出版時變成圖像。 – aaren 2014-11-08 12:49:10

回答

1

vim-pandoc大量使用語法摺疊,我很確定這是問題。禁用vim-pandoc-syntax並關閉摺疊(let g:pandoc#modules#disables = ['folding'])會使vim再次變快。

對於語法高亮我已經使用了我的叉tpope的vim-markdown。我已經分出了它,因爲原文沒有語法突出顯示帶有pandoc樣式屬性的代碼塊(請求here)。

對於使用我使用我的vim-markdown-folding叉foldexpr上標頭圍欄代碼塊摺疊。因爲原稿沒有在代碼塊上摺疊(請求here),因此分叉。

雖然這並沒有真正回答我的問題(我同意這個問題沒有明確定義),但它確實解決了我的問題。

0

這爲我工作:

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

同@ aaren的答案,但雙引號。