Vim przewija się bardzo wolno, gdy linia jest zbyt długa


23

Nigdy bym nie pomyślał, że Vim byłby tak wolny. Mam tylko następującą długą linię:

wprowadź opis zdjęcia tutaj
(Kliknij obraz, aby powiększyć)

Używam Vima (MacVim) pod Mac OS X z aplikacją terminalową. Oto mój vimrc . Mam nadzieję, że nie ma to nic wspólnego z niektórymi moimi wtyczkami. Po rozbiciu dużej linii na obrazie wszystko znów działa szybko.


+1. Dziękuję za zdjęcie! Ta sama linia jest bardzo długa. Pamiętaj, że edytory tekstu CLI ograniczały wiersze do 255 znaków w czasach DOS. Podświetlanie składni wymaga, aby każdy znacznik HTML był otwierany i zamykany, a także każdy podwójny cudzysłów, a następnie każda zmienna. I jestem pewien, że za każdym razem, gdy zagnieżdżasz inny znacznik wewnątrz znacznika HREF, redaktor musi dowiedzieć się, co to znaczy. Widziałem, że emacs ma problemy z podświetlaniem tekstu, z którym VI nie ma problemów: Ty również możesz wybierać edytory na żądanie, tak jak my robimy z Chrome, FF i niesławną przeglądarką IE.
Vlueboy

Odpowiedzi:


23

Jest to znany problem z Vimem i bardzo długimi liniami. Widzę trzy rozwiązania:

  1. Wyłącz podświetlanie składni za pomocą :syntax off.
  2. Ogranicz podświetlanie składni za pomocą :set synmaxcol=200lub innej wartości.
  3. Rozbij swoją długą linię na mniejsze części :s/\s<a/<C-v><Enter><a.

W tym konkretnym przypadku zaleciłbym rozwiązanie 3.


36

spróbuj wykonać następujące czynności:

" Syntax coloring lines that are too long just slows down the world
set synmaxcol=128

w przeciwnym razie polecam przyspieszenie vima przez:

set ttyfast " u got a fast terminal
set ttyscroll=3
set lazyredraw " to avoid scrolling problems

2
+1. Będzie to przydatne, nawet jeśli pytający nie wybrał go jako „najlepszej” odpowiedzi.
Vlueboy

2
Wow synmaxcolzrobił taką różnicę, pisząc posty na blogu w przecenach.
Keith Smiley,

lazyredrawzrobił dla mnie lewę. Nawet bez żadnych wtyczek przewijanie niektórych plików było wyjątkowo powolne. Tak było zarówno w vimie, jak i gvimie. Profilowanie niczego nie pokazywało.
Zamieszanie

set synmaxcol=4096całkowicie rozwiązało problem przerywania podświetlania składni na długich liniach :)
Jay Taylor,

1

Wydaje mi się, że masz ustawiony kursor. Przekonałem się, że to był największy czynnik opóźniający w moim vimie. Możesz spróbować to wyłączyć.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.