Emacs vs. Vim

Emacs e Vim sono i due editor di testo più utilizzati su sistemi Unix e simili a Unix. C'è una lunga storia di concorrenza tra questi due editor di testo, che sono notevolmente più avanzati rispetto agli altri editor di testo sulla piattaforma Unix. Mentre entrambi gli editor presentano funzionalità simili attraverso i loro plugin, script e tasti di scelta rapida, i loro approcci sono leggermente diversi.

Tabella di confronto

Emacs contro Vim grafico comparativo
Emacs Vim
Rilascio di anteprima237.2a.13 (2008-07-04)
Scritto inC ed Emacs LispC e Vim script
piattaformaCross-platform, inclusi Unix, Linux e Microsoft WindowsCross-platform, inclusi Unix, Linux e Microsoft Windows
Disponibili inInglese, cinese, francese, italiano, polacco, russoInglese, cinese, francese, italiano, polacco, russo
genereEditor di testoEditor di testo
LicenzaGNU GPLSoftware gratuito, charityware, compatibile GPL
Sito web//www.gnu.org/software/emacs///www.vim.org/
Introduzione (da Wikipedia)Emacs è una classe di editor di testo ricchi di funzionalità, solitamente caratterizzati dalla loro estensibilità. Emacs ha oltre 1.000 comandi di modifica. Inoltre, consente all'utente di combinare questi comandi in macro per automatizzare il lavoro.Vim è un editor di testo rilasciato per la prima volta da Bram Moolenaar nel 1991 per il computer Amiga. Il nome "Vim" è l'acronimo di "Vi IMproved" perché Vim è stato creato come versione estesa dell'editor vi, con molte funzionalità aggiuntive progettate per essere utili
Disegnato daRichard StallmanBram Moolenaar
Versione iniziale19761991
Rilascio stabile22.3 (05/09/2008)7.2 (2008-08-09)
Schede bufferSupportato sia nella riga di comando che nell'interfaccia utente graficaSupportato sia nella riga di comando che nell'interfaccia utente grafica

Interfaccia utente di Emacs e Vim

Vim utilizza le modalità di modifica - più comunemente la modalità di comando e la modalità di inserimento . Vim mira a ridurre al minimo il numero di sequenze di tasti che un utente deve premere, perché vi, su cui si basa Vim, è stato progettato per essere utilizzato su terminali lenti.

Emacs utilizza i tasti modificatori per abilitare le scorciatoie, che spesso comporta la pressione simultanea di più tasti per una singola funzione. Questo aspetto di Emacs è spesso criticato.

Facilità di apprendimento

Emacs è più facile da imparare poiché ha un'interfaccia più naturale (per gli utenti che hanno familiarità con gli editor di testo basati sulla GUI). Poiché Vim ha diverse modalità di modifica, i principianti trovano un po 'più difficile da imparare.

Produttività e velocità di modifica

Gli appassionati di Vim sostengono che una volta che un utente acquisisce familiarità con le modalità di modifica e i comandi di Vim, consente produttività ed efficienza molto maggiori. La modifica dei file di solito è più veloce con Vim che con Emacs a causa dell'interfaccia volutamente guidata da Vim. Ad esempio, il movimento del cursore può essere controllato tramite i tasti H, J, K e L in modalità normale . Ciò significa che le mani dell'utente non devono lasciare la posizione "home row", il che migliora l'efficienza, ma ha il prezzo di aggiungere spese generali poiché è necessario il cambio di modalità per scegliere tra movimento e modifica del testo. In Emacs (con la configurazione predefinita), l'utente sposta il cursore con le scorciatoie Ctrl-B o Ctrl-F, che potrebbero rallentare l'utente inesperto poiché è necessario premere due tasti. I miglioramenti di produttività ed efficienza in Emacs dipendono dalla configurazione dell'ambiente di modifica piuttosto che dall'editor stesso.

Utilizzo della RAM di Emacs vs Vim

Vim è più leggero di Emacs e utilizza meno memoria. I sostenitori di Vim criticano il consumo di risorse di Emacs con il suggerimento ironico che Emacs sta per "Eighty Megabytes And Constantly Swapping".

Tuttavia, con gnuclient, è possibile eseguire un singolo processo Emacs persistente in grado di supportare più client contemporaneamente. Questo accelera il tempo di avvio e riduce l'utilizzo della memoria totale, colmando il divario tra Emacs e Vim.

Estensibilità e personalizzazione di Emacs vs Vim

Mentre sia Vim che Emacs supportano plug-in che ne migliorano la funzionalità, Emacs supporta molta più personalizzazione dell'ambiente dell'editor. Questa è senza dubbio la caratteristica più importante di emacs ed è responsabile di gran parte del seguito devoto di emacs.

Emacs può essere esteso in elisp, mentre Vim ha il suo linguaggio di scripting interno e supporta l'uso di altri linguaggi di programmazione per lo sviluppo di plugin.

Emacs può essere esteso al volo ridefinendo le funzioni elisp integrate, digitando la nuova definizione in Emacs o caricando i file elisp. I gruppi di modifiche correlate sono chiamati "modalità" e possono essere facilmente configurati per essere automaticamente utilizzati per particolari tipi di file (buffer). Quindi è facile definire le modalità per diversi linguaggi di programmazione o framework come "modalità lisp" o "modalità Ruby on Rails" o "modalità PHP". Queste modalità possono modificare direttamente anche i comportamenti fondamentali di Emacs, formattare o colorare automaticamente il testo e aggiungere un modello standard o testo "boilerplate" come dichiarazioni di funzioni e chiusure. Quindi i programmatori trovano Emacs molto più personalizzabile rispetto alle loro esigenze particolari rispetto a Vim. Tuttavia, alcuni programmatori potrebbero trovare Vim in definitiva più adatto al proprio ambiente di programmazione grazie al suo funzionamento ugualmente personalizzabile e completamente modale.

Vim può anche essere esteso al volo usando la modalità comando. La modalità di comando consente di impostare le opzioni di configurazione, di definire le funzioni e di creare macro. In effetti, i file di configurazione per Vim sono solo comandi che possono essere immessi attraverso la modalità comandi.

Interfaccia utente grafica (GUI)

Sia Vim che Emacs hanno interfacce utente grafiche. Praticamente tutte le voci di menu sull'interfaccia grafica di entrambi gli editor sono semplicemente dei modi per gestire un comando di scelta rapida o una configurazione rapida. Le GUI per gli editor non forniscono praticamente alcuna funzione aggiuntiva oltre a quelle disponibili nell'interfaccia della riga di comando (interfaccia della riga di comando)

Emacs utilizza XDisplay o gtk2 per la sua GUI. Vim può usare molte altre librerie GUI, come gtk, gnome, gnome2, motif, athena e neXtaw, oltre a gtk2.

Articoli Correlati