Perché Vim può aprire file di grandi dimensioni più velocemente di altri editor di testo?


10

Quando apro file di registro di grandi dimensioni (beh, non così grandi, ma 80mb è ancora molto testo!), Ho sempre usato Vim poiché li carica quasi istantaneamente. Altri editor di testo come Blocco note, Notepad ++, ecc. Impiegheranno> 10 secondi per elaborare e caricare il file. Qual è la ragione di ciò? Cosa rende Vim così veloce?


8
Attiva l'evidenziazione della sintassi e lasciati sorprendere da quanto lento possa diventare Vim
Marco

11
Agli elettori vicini: direi che questa domanda è costruttiva - come indica la risposta, ci sono tecniche che Vim usa che la rendono più efficiente con file più grandi rispetto ad altri editor. Questa è una risposta concreta, che può essere supportata da fatti / riferimenti. E non sono sicuro del perché le persone possano considerarlo localizzato; c'è una chiara differenza nel modo in cui gli editor gestiscono i file che interessano molto più di una piccola area geografica, un momento specifico nel tempo o una situazione straordinariamente ristretta .
Bob,

1
@Bob - Non riesco a vedere come la risposta a questa domanda risolva eventuali problemi.
Nifle,

Risposte:


16

Esistono numerosi trucchi che gli editor possono utilizzare per ottimizzare la gestione di file di grandi dimensioni.

Uno è lavorare solo con ciò di cui hanno bisogno. Ciò significa non tentare di analizzare l'intero file per cose come il conteggio delle righe, le misurazioni della larghezza, il wrapping delle parole, l'evidenziazione della sintassi, la convalida XML, il rendering HTML, Annulla, ecc. È disponibile il plug-in LargeFile per Vim che disabiliterà alcune funzionalità di Vim quando viene aperto un file "grande" (come definito dall'utente). Il caricamento più rapido di una pagina di file di grandi dimensioni sul wiki di Vim menziona alcune delle funzionalità disabilitate: ignora il tipo di file (per evidenziare / analizzare la sintassi), disabilitare annulla, passa alla modalità di sola lettura. Ci sono anche altri cambiamenti, ma sembrano mirati alla conservazione della memoria piuttosto che alla velocità.

Un altro è la mappatura della memoria. Invece di leggere l'intero file in memoria, dire al sistema operativo sottostante di mappare una vista del file direttamente nello spazio di memoria dei processi. Non sono sicuro che Vim in particolare lo faccia, ma altri editor possono e lo fanno.

Quelli sono probabilmente i più grandi 2, ma c'è sicuramente di più.


Hai un riferimento per vim usando una di queste tecniche?
slhck,

Non posso commentare in particolare la mappatura della memoria, ma la prima può sicuramente essere fatta. Modifica imminente.
Afrazier

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.