Vim scorre molto lentamente quando una linea è troppo lunga


23

Non avrei mai pensato che Vim sarebbe stato così lento. Tutto quello che ho è la seguente linea lunga:

inserisci qui la descrizione dell'immagine
(Clicca sull'immagine per ingrandire)

Corro Vim (MacVim) su Mac OS X con l'app terminale. Ecco il mio vimrc . Spero che non abbia nulla a che fare con alcuni dei miei plugin. Se interrompo la linea grande nell'immagine, tutto funziona di nuovo velocemente.


+1. Grazie per la foto! Quella stessa riga è estremamente lunga. Ricorda che gli editor di testo della CLI utilizzati per limitare le righe a 255 caratteri nei giorni di DOS. L'evidenziazione della sintassi richiede che ogni tag HTML aperto e chiuso sia monitorato, anche ogni virgoletta doppia e quindi ogni variabile. E sono sicuro che ogni volta che annidate un altro tag all'interno del tag HREF, l'editor deve capire esattamente cosa significhi. Ho visto che emacs ha problemi a evidenziare il testo con cui VI non ha problemi: anche tu puoi scegliere gli editor su richiesta come facciamo con Chrome, FF e il famigerato browser IE.
Vlueboy,

Risposte:


23

Questo è un problema noto con Vim e linee molto lunghe. Vedo tre soluzioni:

  1. Disattiva l'evidenziazione della sintassi con :syntax off.
  2. Limita l'evidenziazione della sintassi con :set synmaxcol=200o qualche altro valore.
  3. Abbatti la tua lunga fila in pezzi più piccoli con :s/\s<a/<C-v><Enter><a.

In questo caso particolare consiglierei la soluzione 3.


36

prova a seguire:

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

altrimenti consiglio di velocizzare Vim di:

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

2
+1. Questo sarà utile, anche se non è stato scelto dall'asker come risposta "migliore".
Vlueboy,

2
Wow ha synmaxcolfatto una tale differenza quando scrivevo post di blog in markdown.
Keith Smiley

lazyredrawha fatto il trucco per me. Anche senza plug-in, scorrere alcuni file è stato estremamente lento. Ciò è avvenuto sia in vim che in gvim. La profilazione non ha mostrato nulla.
Confusione,

set synmaxcol=4096risolto completamente il problema del fatto che l'evidenziazione della sintassi si interrompesse su lunghe righe :)
Jay Taylor,

1

Penso che tu abbia impostato la linea del cursore. Ho scoperto che era il più grande collaboratore a rimanere indietro nel mio video. Potresti provare a disabilitarlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.