Как увидеть, какие плагины делают Vim медленным?

Есть ли способ профилировать плагины Vim?

Мой MacVim становится медленнее и медленнее, когда я открываю большой .py . Я знаю, что могу отменить выбор всех плагинов и повторно выбрать один за другим, чтобы проверить, какой плагин является виновником, но есть ли более быстрый способ?

Мой dotvim находится здесь: https://github.com/charlax/dotvim

Вы можете использовать встроенную поддержку профилирования: после запуска vim do

 :profile start profile.log :profile func * :profile file * " At this point do slow actions :profile pause :noautocmd qall! 

(в отличие от отказа от noautocmd самом деле не требуется, он просто ускоряет работу vim).

Примечание. Вы не получите информацию о функциях, которые были удалены до выхода vim.

Я нашел еще один очень полезный метод построения vim для отображения точно временных сообщений при загрузке вашего .vimrc.

 vim --startuptime timeCost.txt timeCost.txt 

Запустите:

 :help --startuptime 

в VIM, чтобы получить дополнительную информацию.

Это может быть плагин или подсветка синтаксиса; попробуйте :syntax off когда это произойдет и посмотрите, быстро ли ускорится Vim.

С плагинами «общая медлительность» обычно исходит от автокоманд; a :autocmd перечисляет их все. Исследуйте, убив некоторых из них через :autocmd! [group] {event} :autocmd! [group] {event} . Переходите от более частых событий (например, CursorMoved[I] ) к менее частым (например, BufWinEnter ).

Если вы можете несколько надежно воспроизвести медлительность, двоичный поиск может помочь: отодвиньте половину файлов в ~/.vim/plugin/ , а затем другой, повторите в ~/.vim/plugin/ которое было медленным.

Если вам действительно нужно посмотреть под капотом, получите версию Vim, в которой включена команда :profile . (Не ванильная версия BIG Windows, но та, которая поставляется с Cygwin, имеет его, а также самокомпилирование довольно легко при большинстве дистрибутивов).

Я нашел полезным распечатать всю активность Vim в файл, запустив Vim с опцией -V :

 vim -V12log 

Это обеспечивает максимальную многословность (уровень 12) и выводит ее в log файлов. Затем вы можете выполнить некоторые действия Vim, которые, как вы знаете, будут медленными, а затем посмотреть, какие функции / отображения вызываются внутренне.

  • Есть ли разница в производительности между Javac debug on и off?
  • Как отлаживать расширения Visual Studio
  • Как использовать окно Immediate в Visual Studio?
  • Почему в моем проекте Eclipse есть точки прерывания отладки отладки?
  • При запуске приложения в режиме отладки приложение Android
  • Как найти трассировку стека в Visual Studio?
  • Asp.net выпускает сборку против сборки отладки
  • Visual Studio отказывается забывать точки останова?
  • Проверка распределения памяти в инструментах
  • Почему исключение операции перекрестного streamа не выбрасывается при запуске exe в bin \ Debug
  • Как я могу запретить Visual Studio 2013 закрывать приложение IIS Express при завершении отладки?
  • Давайте будем гением компьютера.