Warum kann Vim große Dateien schneller öffnen als einige andere Texteditoren?

10

Beim Öffnen großer Protokolldateien (nicht so groß, aber 80 MB sind immer noch viel Text!) Habe ich immer Vim verwendet, da es sie fast sofort lädt. Andere Texteditoren wie Notepad, Notepad ++ usw. benötigen> 10 Sekunden, um die Datei zu verarbeiten und zu laden. Was ist der Grund dafür? Was macht Vim so schnell?

Anonym
quelle
8
Schalten Sie die Syntaxhervorhebung ein und seien Sie überrascht, wie langsam vim werden kann
Marco
11
Zu den nahen Wählern: Ich würde behaupten , dass diese Frage ist konstruktiv - wie die Antwort gibt, gibt es Techniken , Vim Anwendungen , die es effizienter mit größeren Dateien als einige anderen Editoren machen. Das ist eine konkrete Antwort, die durch Fakten / Referenzen gestützt werden kann. Und ich bin mir nicht sicher, warum die Leute dies als lokalisiert betrachten können. Es gibt einen deutlichen Unterschied in der Art und Weise, wie die Editoren mit Dateien umgehen, die weit mehr als nur ein kleines geografisches Gebiet, einen bestimmten Zeitpunkt oder eine außerordentlich enge Situation betreffen .
Bob
1
@ Bob - Ich sehe nicht, wie die Antwort auf diese Frage Probleme löst.
Nifle

Antworten:

16

Es gibt eine Vielzahl von Tricks, mit denen Redakteure den Umgang mit großen Dateien optimieren können.

Eine ist, nur mit dem zu arbeiten, was sie brauchen. Das bedeutet, dass Sie nicht versuchen müssen, die gesamte Datei auf Zeilenzählung, Breitenmessungen, Zeilenumbruch, Syntaxhervorhebung, XML-Validierung, HTML-Rendering, Rückgängig usw. zu analysieren. Für Vim ist das LargeFile-Plugin verfügbar, mit dem eine Reihe von Vim-Funktionen deaktiviert werden wenn eine "große" (vom Benutzer definierte) Datei geöffnet wird. Auf der Seite Schnelleres Laden großer Dateien im Vim-Wiki werden einige der deaktivierten Funktionen erwähnt: Dateityp ignorieren (zum Hervorheben / Parsen der Syntax), Rückgängig deaktivieren, in den schreibgeschützten Modus wechseln. Es gibt auch andere Änderungen, aber sie scheinen eher auf die Erhaltung des Gedächtnisses als auf die Geschwindigkeit ausgerichtet zu sein.

Ein anderes ist die Speicherzuordnung. Anstatt die gesamte Datei in den Speicher einzulesen, weisen Sie das zugrunde liegende Betriebssystem an, eine Ansicht der Datei direkt dem Speicher des Prozesses zuzuordnen. Ich bin mir nicht sicher, ob insbesondere Vim dies tut, aber andere Redakteure können und tun dies.

Das sind wahrscheinlich die größten 2, aber es gibt sicherlich noch mehr.

afrazier
quelle
Haben Sie eine Referenz für vim, die eine dieser Techniken verwendet?
Slhck
Ich kann die Speicherzuordnung nicht besonders kommentieren, aber die erste kann definitiv durchgeführt werden. Bearbeiten Sie in Kürze.
Afrazier