Vim: Медленное обновление плагина TagList - PullRequest
8 голосов
/ 31 декабря 2010

Я использую Vim с TagList в разработке. TagList кажется очень хорошим, но одна проблема в том, что обновление занимает много времени, поэтому, если, например, я имею в виду переход от функции A к функции B в том же файле, то для получения TagList требуется около 5 секунд. обновлено. Можно ли как-то сократить этот интервал, например, на полсекунды?

Ответы [ 4 ]

3 голосов
/ 18 августа 2015

Вы можете попробовать установить время обновления на 1000 мс. Я сделал это с большим файлом, и все работает очень хорошо, обновление происходит каждую секунду;

set ut=1000

посмотрим, поможет ли это

3 голосов
/ 29 февраля 2012

У меня та же проблема, что и у вас, и вдохновленный ответом ThePosey.

Вы можете найти команду "autocmd" в строке 1678 в taglist.vim, который выглядит как

autocmd BufEnter * call s:Tlist_Refresh()

, ожидающее события BufEnter для обновления окна тега.

Я только что изменил его на

autocmd BufEnter,CursorMovedI * call s:Tlist_Refresh()

, и он будет переключать Tlist_Refresh, пока курсор перемещается в режиме вставки. Я удалил событие CursorMoved, поскольку оно мешает многим другим командам.

Я думаю, что это должно соответствовать требованию в большинстве случаев. Побочным эффектом является то, что некоторые команды, требующие перемещения курсора, становятся недействительными.

Edit:

Проще было бы поместить эту строку в файл .vimrc:

autocmd CursorMovedI * silent! TlistHighlightTag

И, кстати, команды TlistRefresh нет, вместо нее используйте TlistHighlightTag.

1 голос
/ 04 декабря 2013

Вроде старого вопроса, но для taglist 4.6 (как минимум) период обновления контролируется временем обновления (autocmd CursorHold .. строка 1735)

Для интерактивности ответ Тома Юя, вероятно, является лучшим решением.

1 голос
/ 17 марта 2011

Вы можете привязать ключ к функции: TlistRefresh

map <silent> <F1> :TlistRefresh<CR>
...