Emacs e Vim sono i due editor di testo più diffusi su sistemi Unix e Unix. C'è una lunga storia di competizione tra questi due editor di testo, che sono molto più avanzati di 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.
Emacs | Vim | |
---|---|---|
Versione di anteprima | 23 | 7.2a.13 (2008-07-04) |
Scritto in | C ed Emacs Lisp | Script C e Vim |
piattaforma | Cross-platform, incluso Unix, Linux e Microsoft Windows | Cross-platform, incluso Unix, Linux e Microsoft Windows |
Disponibile in | Inglese, cinese, francese, italiano, polacco, russo | Inglese, cinese, francese, italiano, polacco, russo |
genere | Editor di testo | Editor di testo |
Licenza | GNU GPL | Software gratuito, charityware, compatibile con GPL |
Sito web | http://www.gnu.org/software/emacs/ | http://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. Consente inoltre 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 da | Richard Stallman | Bram Moolenaar |
Versione iniziale | 1976 | 1991 |
Rilascio stabile | 22.3 (2008-09-05) | 7.2 (2008-08-09) |
Schede di buffer | Supportato sia nella riga di comando che nell'interfaccia utente grafica | Supportato sia nella riga di comando che nell'interfaccia utente grafica |
Vim usa le modalità di modifica - il più comunemente il modalità di comando e inserire la modalità. Vim mira a ridurre al minimo il numero di sequenze di tasti che un utente deve premere, poiché vi, su cui Vim è basato, è stato progettato per essere utilizzato su terminali lenti.
Emacs utilizza i tasti modificatori per abilitare le scorciatoie, che spesso comporta la pressione di più tasti contemporaneamente per una singola funzione. Questo aspetto di Emacs è spesso criticato.
Emacs è più facile da apprendere poiché ha un'interfaccia più naturale (per gli utenti che hanno familiarità con gli editor di testo basati su GUI). Poiché Vim ha diverse modalità di modifica, i principianti lo trovano un po 'più difficile da imparare.
Gli appassionati di Vim sostengono che una volta che un utente acquisisce familiarità con le modalità di modifica e i comandi di Vim, consente una maggiore produttività ed efficienza. La modifica dei file è solitamente più veloce con Vim che con Emacs a causa dell'interfaccia volutamente basata sulla velocità di Vim. Ad esempio, il movimento del cursore può essere controllato attraverso il H, J, K, e L chiavi in modalità normale. Ciò significa che le mani dell'utente non hanno bisogno di lasciare la posizione "home row", il che migliora l'efficienza, ma ha il prezzo di aggiungere overhead poiché è necessario cambiare la modalità per scegliere tra il movimento e la modifica del testo. In Emacs (con la configurazione di default), 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 della produttività e dell'efficienza in Emac dipendono dalla configurazione dell'ambiente di editing piuttosto che dall'editor stesso.
Vim è più leggero di Emacs e usa meno memoria. I sostenitori di Vim criticano il consumo di risorse di Emacs con il suggerimento ironico che Emacs sta per "Eighty Megabytes And Constant 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 diminuisce l'utilizzo totale della memoria, riducendo il divario tra Emacs e Vim.
Sebbene sia Vim che Emacs supportino plugin che migliorano le loro funzionalità, Emacs supporta molte più personalizzazioni dell'ambiente editoriale. Questa è probabilmente la caratteristica più importante di emacs ed è responsabile di gran parte del seguito dedicato di emacs.
Emacs può essere esteso in elisp, mentre Vim ha il proprio 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 file elisp. I gruppi di modifiche correlate sono chiamati "modalità" e possono essere facilmente configurati per essere utilizzati automaticamente 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 di base di Emacs, formattare o colorare automaticamente il testo e aggiungere template standard o testo "boilerplate" come dichiarazioni di funzioni e chiusure. Quindi i programmatori trovano Emacs molto più personalizzabile rispetto alle proprie esigenze rispetto a Vim. Eppure alcuni programmatori potrebbero trovare Vim in definitiva più adatto al loro ambiente di programmazione grazie alla sua funzione ugualmente personalizzabile e completamente modale.
Vim può anche essere esteso al volo usando la modalità di comando. La modalità comandi consente di impostare le opzioni di configurazione, le funzioni da definire e le macro da realizzare. In effetti, i file di configurazione di Vim sono solo comandi che possono essere immessi tramite la modalità di comando.
Sia Vim che Emacs hanno interfacce utente grafiche. Praticamente tutte le voci di menu sull'interfaccia grafica per entrambi gli editor sono semplicemente 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 nella CLI (interfaccia della riga di comando)
Emacs usa 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.