2012-02-18 14 views
10

Jeśli otworzę plik zawierający 5000 linii kodu i będę kontynuować wprowadzanie, stwierdziłem, że mój vim stał się bardzo wolny, wyświetla moje dane wejściowe po około 1s.Odpowiedź Vima dość powolna

Nawet nie będzie lepiej po uruchomieniu z --noplugin. Ale po przełączeniu pliku .vimrc wszystko znów jest w porządku. Plik .vimrc został napisany przeze mnie i po sprawdzeniu przez pewien czas nadal nie mogę zlokalizować błędu. Mam jasne wszystkie kluczowe mapy, ale problem nadal istnieje.

Czy możesz dać moją radę lub powiedzieć, jak debugować w vim? Znalazłem opcję debugowania, ale nie mogę się dowiedzieć, jak pracować.

+0

Janus używany przez przypadek? Jeśli tak, wydaje się, że jest to powszechny problem.Jeśli nie polegasz na zbiegach, wyłącz go. https://github.com/carlhuda/janus/issues/396 – three

+0

Trzy dziękuję. Nie znam teraz wersji vima. Ale wydaje się, że nie jest to spowodowane przez vima, ale napisany przeze mnie skrypt ma pewien problem. –

+1

Jaki jest typ pliku? Czy to XML? Czy próbowałeś ': syn off'? – Benoit

Odpowiedz

12

Można użyć opcji --startuptime kiedy zacząć vim:

--startuptime {fname}     *--startuptime* 
     During startup write timing messages to the file {fname}. 
     This can be used to find out where time is spent while loading 
     your .vimrc, plugins and opening the first file. 
     When {fname} already exists new messages are appended. 
     (Only available when compiled with the |+startuptime| 
     feature). 

wziąć następujące kroki w celu zdiagnozowania problemu:

  • typ vim --startuptime log.txt main.java w bash, aby uruchomić vim
  • typu :tabe log.txt w vimie, aby wyświetlić log.
+2

Hi kav. Mój vim nie działa wolno podczas uruchamiania. –

+0

@ user674199 Zaktualizowałem odpowiedź. – kev

+0

oK, spróbuję. Dziękuję Kev. –

7

Coś takiego jest zazwyczaj spowodowane kolorowaniem składni. Wypróbuj z :syntax off.

+0

Nie powinno stanowić problemu dla plików o takim rozmiarze (~ 5000 linii), moje są znacznie większe i wciąż nie spowalniają. Gdyby to było 500000 linii, może ... – Rook

+0

To nie jest problem z składnią. Zmieniłem na vimrc innego, a składnia jest włączona. Działa dobrze. Thanks. –

+1

Po wyłączeniu składni problem został rozwiązany. Ale przyspieszy również, gdy zmienię plik vimrc. Odniosłem się do tej samej składni w tych dwóch plikach vimrc. –

11

Powodem powolności jest często nie ustawiony lub błędny zbiór ruby_path w czasie kompilacji vima (see also discussion on google vim/ruby google group). Łatwiej jest ustawić go w vimrc, ponieważ możesz go zmienić bez ponownej kompilacji vima. Możesz ustawić ścieżkę poprzez zmienną g: ruby_path w pliku .vimrc. Nie kopiuj i nie wklejaj obu, użyj właściwego.

Jeśli konfiguracja RBENV trzeba użyć tego:

" ruby path if you are using rbenv 
let g:ruby_path = system('echo $HOME/.rbenv/shims') 

Jeśli konfiguracja RVM trzeba użyć tego:

" ruby path if you are using RVM 
let g:ruby_path = system('rvm current') 

Można również użyć vim-rbenv plugin, który określa ścieżka też.

Dla mnie część dotycząca ładowania ruby ​​w vimie działa 10 razy szybciej.

Jeśli korzystasz z juby, to początkowa szybkość może być nawet większa. Zobacz przykłady jego naprawy .

+0

W istocie, wymuszenie rubinowej ścieżki przez tę metodę znacznie zwiększa prędkość uruchamiania vima. Dziękuję Ci! – agarie

5

Jeśli uruchomiony vim 7.4,

umieścić to w swoim .vimrc

zestaw regexpengine = 1

vim 7.4 ma nowy silnik regex które wydają się nie działać dobrze w niektórych sytuacjach. Poprzednia wersja vim 7.3 korzystała ze starego silnika (set regexpengine = 1).

"Powolna reakcja" na problem z podświetlaniem składni wpływa również na pliki pomocy vima (i plik .vimrc).

+0

Dziękuję za tonę to zrobiłem podstęp – robert

+0

': set regexpengine = 1' - To jest świetne znalezisko, o którym * żaden inny ekspert * nie wspomniał. Po zmianie nastąpiła pewna poprawa (ale nie pełna). Jeszcze jeden powód mojego spowolnienia to ': set relativenumber', który powoduje wiele przerysowań ekranu skutecznie pokazując spowolnienie. –