Jak sprawdzić, które wtyczki zwalniają Vima?

Czy istnieje sposób na profilowanie wtyczek Vima?

Mój MacVim staje się wolniejszy i wolniejszy, gdy otwieram duży .py. Wiem, że mogę odznaczyć wszystkie wtyczki i ponownie zaznaczyć jeden po drugim, aby sprawdzić, która wtyczka jest winowajcą, ale czy istnieje szybszy sposób?

Mój dotvim jest tutaj: https://github.com/charlax/dotvim

Author: Teun Zengerink, 2012-08-31

5 answers

Możesz użyć wbudowanej obsługi profilowania: po uruchomieniu vim do

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

(w przeciwieństwie do zamykania {[1] } nie jest tak naprawdę wymagane, po prostu sprawia, że vim kończy pracę szybciej).

Uwaga: nie otrzymasz informacji o funkcjach, które zostały usunięte przed zamknięciem Vima.

 413
Author: ZyX,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-31 13:41:27

Znalazłem inną bardzo pomocną metodę budowania vim, aby pokazać dokładnie wiadomości czasowe podczas ładowania .vimrc.

vim --startuptime timeCost.txt timeCost.txt

Proszę uruchomić:

:help --startuptime

W Vimie, aby uzyskać więcej informacji.

 58
Author: feihu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-03 08:37:31

Może to być wtyczka lub podświetlenie składni; spróbuj :syntax off kiedy to się stanie i sprawdź, czy Vim od razu staje się szybszy.

W przypadku wtyczek, "ogólna powolność" zwykle pochodzi z poleceń automatycznych; a :autocmd wymienia je wszystkie. Zbadaj, zabijając niektórych z nich za pomocą :autocmd! [group] {event}. Należy przejść od częstszych zdarzeń (np. CursorMoved[I]) do mniej częstych (np. BufWinEnter).

Jeśli możesz w pewien sposób wiarygodnie odtworzyć spowolnienie, wyszukiwanie binarne może pomóc: usunąć połowę plików w ~/.vim/plugin/, a następnie drugi, powtórz w zestawie, który był powolny.

Jeśli naprawdę chcesz zajrzeć pod maskę, Pobierz wersję Vima z włączonym poleceniem :profile. (Nie wersja vanilla BIG Windows, ale ta, która jest dostarczana z Cygwinem, ma ją; ponadto, samodzielna kompilacja jest dość łatwa pod większością dystrybucji.)

 28
Author: Ingo Karkat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-31 12:04:09

Uważam, że pomocne jest wydrukowanie całej aktywności Vima do pliku, uruchamiając Vima opcją -V:

vim -V12log

Zapewnia maksymalną szczegółowość (poziom 12) i wysyła ją do pliku log. Następnie możesz wykonać pewne działania Vima, które są powolne, a następnie sprawdzić, które funkcje / mapowania są wywoływane wewnętrznie.

 14
Author: Prince Goulash,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-31 11:00:58

Jeśli masz problemy z operacjami aktualizacji ekranu (^L, przewijaniem itp.), może to być nieefektywny plik podświetlania składni. Możesz to przetestować, tymczasowo wyłączając podświetlanie składni (:syn off) i sprawdzając, czy problem zniknie; jeśli chcesz zagłębić się w szczegóły, możesz profilować bieżący plik składni używając :syntime:

  1. otwórz plik, który powoduje problemy z podświetleniem składni.
  2. Uruchom :syntime on, aby rozpocząć profilowanie.
  3. Scroll przez plik trochę.
  4. Uruchom :syntime report, Aby wygenerować raport. Wzory wymienione jako pierwsze w raporcie to te, które zajmowały najwięcej czasu na przetworzenie.
 0
Author: duskwuff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-19 19:30:01