Подсветка GVim с помощью matchadd со временем замедляется? - PullRequest
3 голосов
/ 04 апреля 2010

У меня есть следующее в ~ / .vim / ftplugin / python.vim для выделения длинных строк, случайных вкладок и дополнительных пробелов в файлах Python:

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 замедляется и требует перезапуска.

У кого-нибудь есть идеи, почему это в конечном итоге замедлится?

1 Ответ

1 голос
/ 04 апреля 2010

Это почти наверняка ошибка в vim и, скорее всего, утечка памяти. Я попытаюсь воспроизвести его из любопытства, но я бы поинтересовался или поинтересовался в Vim-land для получения более точной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...