Emacs gegen Vim

Emacs und Vim sind die beiden am häufigsten verwendeten Texteditoren auf Unix- und Unix-ähnlichen Systemen. Es gibt eine lange Geschichte des Wettbewerbs zwischen diesen beiden Texteditoren, die weitaus weiter fortgeschritten sind als andere Texteditoren auf der Unix-Plattform. Während beide Editoren durch ihre Plugins, Skripte und Tastenkombinationen ähnliche Funktionen bieten, unterscheiden sich ihre Ansätze geringfügig.

Vergleichstabelle

Emacs versus Vim Vergleichstabelle
Emacs Vim
Vorschau Release237.2a.13 (2008-07-04)
Geschrieben inC und Emacs LispC- und Vim-Skript
PlattformPlattformübergreifend, einschließlich Unix, Linux und Microsoft WindowsPlattformübergreifend, einschließlich Unix, Linux und Microsoft Windows
Verfügbar inEnglisch, Chinesisch, Französisch, Italienisch, Polnisch, RussischEnglisch, Chinesisch, Französisch, Italienisch, Polnisch, Russisch
ArtTexteditorTexteditor
LizenzGNU GPLFreie Software, Charityware, GPL-kompatibel
Webseite//www.gnu.org/software/emacs///www.vim.org/
Einführung (aus Wikipedia)Emacs ist eine Klasse von funktionsreichen Texteditoren, die sich normalerweise durch ihre Erweiterbarkeit auszeichnen. Emacs verfügt über mehr als 1.000 Bearbeitungsbefehle. Außerdem kann der Benutzer diese Befehle zu Makros kombinieren, um die Arbeit zu automatisieren.Vim ist ein Texteditor, der 1991 von Bram Moolenaar erstmals für den Amiga-Computer veröffentlicht wurde. Der Name "Vim" ist eine Abkürzung für "Vi IMproved", da Vim als erweiterte Version des vi-Editors mit vielen zusätzlichen Funktionen erstellt wurde, die hilfreich sein sollen
Design vonRichard StallmanBram Moolenaar
Erstveröffentlichung19761991
Stabile Version22, 3 (2008-09-05)7, 2 (2008-08-09)
Puffer-RegisterkartenWird sowohl in der Befehlszeile als auch in der grafischen Benutzeroberfläche unterstütztWird sowohl in der Befehlszeile als auch in der grafischen Benutzeroberfläche unterstützt

Emacs und Vim Benutzeroberfläche

Vim verwendet Bearbeitungsmodi - am häufigsten den Befehlsmodus und den Einfügemodus . Vim zielt darauf ab, die Anzahl der Tastenanschläge zu minimieren, die ein Benutzer drücken muss, da vi, auf dem Vim basiert, für die Verwendung über langsamen Terminals konzipiert wurde.

Emacs verwendet Modifizierertasten, um Verknüpfungen zu aktivieren, bei denen häufig mehrere Tasten gleichzeitig für eine einzelne Funktion gedrückt werden. Dieser Aspekt von Emacs wird oft kritisiert.

Einfaches Lernen

Emacs ist einfacher zu erlernen, da es eine natürlichere Oberfläche hat (für Benutzer, die mit GUI-basierten Texteditoren vertraut sind). Da Vim verschiedene Bearbeitungsmodi hat, ist es für Anfänger etwas schwieriger zu lernen.

Produktivität und Bearbeitungsgeschwindigkeit

Vim-Enthusiasten argumentieren, dass ein Benutzer, sobald er mit den Bearbeitungsmodi und Befehlen von Vim vertraut ist, eine weitaus höhere Produktivität und Effizienz ermöglicht. Die Dateibearbeitung ist mit Vim aufgrund der absichtlich geschwindigkeitsgesteuerten Benutzeroberfläche von Vim normalerweise schneller als mit Emacs. Beispielsweise kann die Cursorbewegung im normalen Modus über die Tasten H, J, K und L gesteuert werden . Dies bedeutet, dass die Hände des Benutzers nicht die Position "Ausgangsreihe" verlassen müssen, was die Effizienz verbessert, sondern zu Lasten des zusätzlichen Overheads geht, da ein Moduswechsel erforderlich ist, um zwischen Bewegung und Textbearbeitung zu wählen. In Emacs (mit der Standardkonfiguration) bewegt der Benutzer den Cursor mit den Tastenkombinationen Strg-B oder Strg-F, wodurch der Anfänger möglicherweise langsamer wird, da zwei Tasten gedrückt werden müssen. Produktivitäts- und Effizienzverbesserungen in Emacs hängen eher von der Konfiguration der Bearbeitungsumgebung als vom Editor selbst ab.

RAM-Nutzung von Emacs vs Vim

Vim ist leichter als Emacs und benötigt weniger Speicher. Vim-Befürworter kritisieren den Ressourcenverbrauch von Emacs mit dem ironischen Vorschlag, dass Emacs für "Achtzig Megabyte und ständiges Tauschen" steht.

Mit gnuclient kann jedoch ein einzelner persistenter Emacs-Prozess ausgeführt werden, der mehrere Clients gleichzeitig unterstützen kann. Dies beschleunigt die Startzeit und verringert die Gesamtspeicherauslastung, wodurch die Lücke zwischen Emacs und Vim geschlossen wird.

Erweiterbarkeit und Anpassung von Emacs vs Vim

Während sowohl Vim als auch Emacs Plugins unterstützen, die ihre Funktionalität verbessern, unterstützt Emacs eine wesentlich stärkere Anpassung der Editorumgebung. Dies ist wohl das wichtigste Merkmal von Emacs und ist für einen Großteil der engagierten Anhänger von Emacs verantwortlich.

Emacs kann in elisp erweitert werden, während Vim über eine eigene interne Skriptsprache verfügt und die Verwendung anderer Programmiersprachen für die Plugin-Entwicklung unterstützt.

Emacs können im laufenden Betrieb erweitert werden, indem integrierte Elisp-Funktionen neu definiert werden, indem entweder die neue Definition in Emacs eingegeben oder Elisp-Dateien geladen werden. Gruppen verwandter Änderungen werden als "Modi" bezeichnet und können einfach so konfiguriert werden, dass sie automatisch für bestimmte Dateitypen (Puffer) verwendet werden. So ist es einfach, Modi für verschiedene Programmiersprachen oder Frameworks wie "Lisp-Modus" oder "Ruby on Rails-Modus" oder "PHP-Modus" zu definieren. Diese Modi können sogar das Kernverhalten von Emacs direkt ändern, Text automatisch formatieren oder einfärben und Standardvorlagen- oder "Boilerplate" -Text wie Funktionsdeklarationen und -schließungen hinzufügen. Daher finden Programmierer Emacs weitaus anpassbarer an ihre speziellen Anforderungen als Vim. Einige Programmierer finden jedoch, dass Vim aufgrund seiner gleichermaßen anpassbaren und vollständig modalen Bedienung letztendlich besser für ihre Programmierumgebung geeignet ist.

Vim kann auch im laufenden Betrieb mithilfe des Befehlsmodus erweitert werden. Im Befehlsmodus können Konfigurationsoptionen festgelegt, Funktionen definiert und Makros erstellt werden. Tatsächlich sind Konfigurationsdateien für Vim nur Befehle, die über den Befehlsmodus eingegeben werden können.

Grafische Benutzeroberfläche (GUI)

Sowohl Vim als auch Emacs verfügen über grafische Benutzeroberflächen. Praktisch alle Menüelemente auf der grafischen Oberfläche für beide Editoren sind einfach Möglichkeiten, einen Verknüpfungsbefehl oder eine schnelle Konfiguration zu handhaben. Die GUIs für die Editoren bieten praktisch keine zusätzlichen Funktionen, die über die in der CLI (Command Line Interface) verfügbaren Funktionen hinausgehen.

Emacs verwendet XDisplay oder gtk2 für seine GUI. Vim kann neben gtk2 auch viele andere GUI-Bibliotheken wie gtk, gnome, gnome2, motif, athena und neXtaw verwenden.

Ähnlicher Artikel