У меня есть следующее в ~ / .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 замедляется и требует перезапуска.
У кого-нибудь есть идеи, почему это в конечном итоге замедлится?