2010-04-03 48 views
3

我在〜/的.vim /文件類型插件/ python.vim以下突出排長隊,意外標籤和多餘的空格在Python文件:用matchadd突出顯示的GVim最終會變慢?

hi CustomPythonErrors ctermbg=red ctermfg=white guibg=#592929 
au BufWinEnter *.py call matchadd('CustomPythonErrors', '\%>80v.\+', -1) 
au BufWinEnter *.py call matchadd('CustomPythonErrors', '/^\t\+/', -1) 
au BufWinEnter *.py call matchadd('CustomPythonErrors', '\s\+$', -1) 
au BufWinLeave *.py call clearmatches() 

的BufWinLeave是這樣,當我切換匹配都被清除以防止該文件不是.py文件。對於像Django這樣的工作來說,這是一個重要的功能。

這一切都適用於隨機數量的時間;從十分鐘到幾小時(我的猜測取決於我打開/關閉的文件數量)。但最終當顯示任何超過80個字符的行時,GVim會停止並需要重新啓動。

有沒有人有任何想法,爲什麼這最終會放緩?

+0

如果其他人有這個問題,只需更新到7.3並使用新的「colorcolumn」選項。在我更新之前,我看到有人說''colorcolumn''很慢,但比''matchadd''快得多,我沒有注意到幾個月內有任何減速。 – 2012-03-11 02:35:29

回答

1

這幾乎肯定是vim中的一個bug,很可能是內存泄漏。我會試着重現它的好奇心,但我會搜索或詢問Vim-land以獲取更多重點信息。

+0

@kyle:我找不到你的代碼片段來自的特定'python.vim'文件; URL我? – msw 2010-04-04 03:38:52

+0

這是我自己做的,並且是該文件中的全部內容(請注意,它不是語法文件)。我將它們拼湊在一起(http://vim.wikia.com/wiki/Highlight_long_lines +來自Python源代碼iirc的vimrc)。但是當我打開另一個文件類型時,我能找到的其他腳本都不會刪除亮點,所以我不使用它們。 我不想把它放到一個語法文件中,因爲afaik你不能用它爲它着色兩次。現在我有常規python語法突出顯示+這些行使用SpellBad匹配+ pyflakes。 – 2010-04-04 04:41:39

相關問題