Differenze tra Emacs e Vim


686

Senza entrare in una discussione religiosa sul perché uno è migliore dell'altro, quali sono le differenze pratiche tra Emacs e Vim? Sto cercando di imparare l'uno o l'altro, ma mi rendo conto che la curva di apprendimento per ciascuno è alta e non riesco a decidere. Non ho mai usato un editor di questo tipo (ho sempre usato IDE), quindi tutto ciò che aiuta un principiante è un vantaggio.


Prima che inizi una guerra di fiamma: non sto chiedendo quale sia la migliore, sto chiedendo le differenze tra i due. Vorrei un confronto oggettivo .


3
Se usi un Mac (OSX), scoprirai che molti comandi di base per il movimento del cursore emacs funzionano praticamente ovunque. (Ad esempio funzionano qui dove sto scrivendo questo commento nella pagina Web.) Quindi per gli utenti Mac, c'è un vantaggio a livello di sistema nell'apprendimento almeno del seguente sottoinsieme di emacs: ^ A ^ B ^ D ^ E ^ F ^ K ^ L ^ N ^ O ^ P ^ T ^ V ^ Y
Matt

2
@JamesAnderson: nella mia esperienza è l'opposto. Ho usato Vim per 2,5 anni, poi sono passato a Emacs. Alla gente di emacs per lo più non importa ... "qualunque cosa funzioni per te". Ecco cosa ,salespitchdice #emacs<fsbot> We aren't gonna lie. Emacs sucks. Some of us tolerate it, but we can't tell you if YOU'LL be able to. Try it and make up your own mind.
Silex

2
Emacs è sicuramente un ottimo sistema operativo, ma manca solo di un editor decente.
Technical_difficulty il

1
@ JimmyM.G.Lim No, utilizza il cercapersone corrente sul sistema. Se corri, PAGER=cat manman mostrerà il testo direttamente sullo schermo.
SS Anne,

1
suppongo che la polizia "principalmente basata sull'opinione" non esistesse quando questo è stato chiesto per la prima volta ;-) ah, tempi più semplici ... una cosa che dirò è che una volta, leggendo un libro su emacs e provandolo, l'ho pensato era la bomba. Dopo 3 settimane di vacanza ho scoperto di aver completamente dimenticato tutte le sue battiture. Vim d'altra parte non è davvero la mia cosa, ma posso usarlo in modo affidabile se necessario usando solo i, esc, wq.
JL Peyret,

Risposte:


491

(il testo sotto è la mia opinione, non dovrebbe essere preso come un fatto o un insulto)

Con Emacs dovresti averlo aperto 24/7 e vivere all'interno del programma, quasi tutto ciò che fai può essere fatto da lì. Scrivi le tue estensioni, le usi per prendere appunti, organizzazione, giochi, programmazione, accesso alla shell, accesso ai file, ascolto di musica, navigazione web. Ci vogliono settimane e settimane prima che tu ne sia felice e poi imparerai sempre nuove cose. Sarai infastidito quando non hai accesso ad esso e cambi costantemente la tua configurazione. Non sarai in grado di usare facilmente le versioni di emacs di altre persone e non sarà solo installato. Usa Lisp, il che è fantastico. Puoi trasformarlo in qualsiasi cosa tu voglia che sia. (proprio niente)

Con Vim, è quasi sempre preinstallato. È veloce. Apri un file, fai una modifica rapida e poi esci. Puoi lavorare con la configurazione di base se sei sulla macchina di qualcun altro. Non è così modificabile, ma è ancora molto meglio della maggior parte degli editor di testo. Riconosce che la maggior parte delle volte che stai leggendo / modificando non digitando e rende quella porzione più veloce. Non soffri di mignolo di emacs . Non è così esasperante. È più facile da imparare.

Anche se uso Emacs tutto il giorno tutti i giorni (e lo adoro) a meno che tu non intenda trascorrere molto tempo nel programma che scegli, sceglierei Vim


154
Non avendo disponibile: ti suggerisco di mettere i tuoi .emacs e .emacs.d in un repository di controllo del codice sorgente, e quindi ottenere la tua perfetta configurazione di Emacs è semplicemente una questione di checkout.
Duncan Bayne,

7
Sia emacs che vim possono soffrire di quanto sopra descritto: entrambi possono essere configurati al punto in cui sono irriconoscibili rispetto alle loro forme di vaniglia. Inoltre, secondo l'uso di un vcs.
Alexej Magura,

11
Su quali sistemi lavori, @Radu? Non ho mai visto un sistema di vita reale negli anni 2010 che fosse reale vianziché vimallentato a quello.
ELLIOTTCABLE

9
Forse Vim è più facile da imparare di Emacs, ma è incredibilmente confuso la prima volta che lo avvii se non hai precedenti esperienze con esso! Ho dovuto usare google per poterlo chiudere e comunque ho dovuto provare più volte a farlo bene.
Ciao Arrivederci

9
Non sottovalutare mai il vantaggio "preinstallato" di VIM: è quasi sempre disponibile ovunque tu vada, ed è utilizzabile con poca / nessuna personalizzazione. Lo uso sempre quando utilizzo sshsu altre macchine. Ecco perché l'ho imparato per primo, quello e perché i miei amici conoscevano VIM e potevano aiutarmi. (Non sottovalutare neanche il supporto degli amici!)
jvriesem,

137

Vim non è una shell. E non comunica bene con i sottoprocessi. Questo è quasi in base alla progettazione, mentre in Emacs questi elementi sono inclusi in base alla progettazione. Ciò significa che alcune cose, come incorporare un debugger o un interprete (producendo una sorta di IDE), sono difficili in Vim.

Inoltre, le scorciatoie di Emacs sono principalmente accessibili tramite modificatori, e ovviamente l'interfaccia di Vim è notoriamente modale, dando accesso a una quantità assurda di tasti diretti per la manipolazione.

Emacs era l'unico editor dei due programmabile, e mentre Vim ha molti livelli strani nella sua programmabilità, con l'aggiunta di collegamenti Python e Ruby (e altro, dimentico), Vim è anche programmabile in molti modi ti interesserebbe.

Uso Vim e ne sono abbastanza contento.


6
Piccolo aggiornamento: Vim supporta una migliore comunicazione con i processi secondari poiché la versione 8.0 e 8.1 ha persino introdotto dei buffer terminali, quindi si sta avvicinando un po 'di più a emacs.
DarkWiiPlayer

110

Vim:

  • meglio come un semplice editor (sono necessarie meno chiavi per attività semplici)
  • comunità di scripting più attiva - linguaggio interno: vimscript
  • un repository centrale di script, plugin, combinazioni di colori, ...
  • estensibile anche in pitone, rubino
  • può essere reso portatile (emacs ha qualche problema con quello)

Emacs:

  • non modale di default (la maggior parte degli editori di oggi ha adottato questo approccio). Sebbene esista una modalità malvagia che emula il comportamento di Vim.
  • un linguaggio più potente per estenderlo (elisp è un linguaggio completo e in emacs puoi praticamente ridefinire tutto; mentre in vim non puoi ridefinire il build nelle funzioni dell'editor. Sul lato negativo, vimscript è relativamente simile ai linguaggi dinamici di oggi mentre elisp non assomiglia più a niente)
  • più estensibile
  • supporto eccellente per gli strumenti GNU (il gruppo di essi)

Personalmente, preferisco vim: è piccolo, fa quello che dovrebbe fare, e quando desidero un IDE in piena regola apro VS. L'approccio di Emacs di essere un editor che vuole essere un IDE (o dovrei dire un sistema operativo), ma non è del tutto, è IMHO, obsoleto. Ai vecchi tempi avere un client di posta elettronica, un client ftp, tetris, ... tutto ciò che in un pacchetto (emacs) aveva un senso ... al giorno d'oggi, non lo è più.

Entrambi sono tuttavia un argomento di discussioni religiose tra il programmatore e gli utenti della comunità di superutente, e in tal senso, entrambi sono eccellenti per iniziare guerre di fiamma se messi in contatto (nella stessa frase / domanda).


47
"Meglio come editore" è piuttosto vago. Sarei interessato a vedere i motivi per cui.
Allen,

41
@Allen - Cosa c'è di vago in esso? Raramente incontro utenti di vim ed emacs, che hanno un problema con questa affermazione. Anche gli utenti di emacs hardcore di solito lo accettano come un dato di fatto. Hai usato entrambi gli editor? Credo sia relativamente ovvio che vim abbia un vantaggio nell'aspetto delle funzionalità di modifica del testo.
Rook,

36
Sono incredulo che qualcuno lo accetti come un fatto. Come utente di lunga data sia di emacs sia di VI semplice, ho usato vim alcune volte - ma "meglio come un editor" deve andare a emacs nella mia mente se non altro per una scelta molto più ampia di modalità principali e secondarie per aiutarti durante la digitazione.
Kendall Helmstetter Gelner,

61
Vim è migliore come editore perché manipolare il testo richiede meno movimenti delle mani e delle dita di emacs, almeno questa è la mia esperienza.
StackedCrooked

7
Ma a parte questo, Vim è più adatto alla modifica: numeri di riga, modalità visiva, manipolazione wint1.kaist.ac.kr/files/attach/images/59/450/… . FCOL, ho avuto problemi a ottenere emacs solo per scorrere una riga alla volta.
Rook,

52

Se stai cercando un'analisi obiettiva di entrambi i redattori, guarda le loro origini e la filosofia dietro i loro rispettivi disegni. Pensa a quale ti si adatterebbe meglio e imparalo (e imparalo e imparalo, perché ci vuole tempo prima che tu sia a scoprire la sua vera utilità rispetto a qualsiasi IDE). Introduzione alla visualizzazione Editing con V'è stato scritto da Bill Joy e Mark Horton e spiega perché ha scelto di progettazione modale e razionale per varie combinazioni di tasti (mi aiuta a ricordare che CTRL-W + W (passa al successivo W indow e sarà lo stesso per CTRL W + CTRL W, nel caso in cui tu abbia tenuto premuto il tasto CTRL per una durata maggiore.

Ecco un link alla timeline di Emacs e ha il riferimento alla carta di Multics Emacs. Ecco il documento RMS su Emacs , dove vedo che lo stress è su un editor di testo programmabile (anche nel lontano 1981 e prima).

Non ho letto i documenti di emacs, ma ho letto il giornale vi di Bill Joy un paio di volte. Entrambi sono vecchi, ma otterrai comunque la filosofia e potresti scegliere di utilizzare lo strumento corrente (vim 7.xo emacs 25?)

Modifica: ho dimenticato di menzionare che ci vuole pazienza e immaginazione per leggere entrambi questi documenti mentre ti riporta indietro nel tempo durante la lettura. Ma vale la pena.


43
  1. Vim è stato sempre più veloce da avviare rispetto a Emacs. Sto dicendo che su qualsiasi macchina, le installazioni out-of-the-box di Vim si avviano più velocemente delle installazioni out-of-the-box di Emacs. E tendo a pensare che dopo una moderata quantità di personalizzazione di uno dei due, Vim si avvierà comunque più velocemente di Emacs.

  2. Dopodiché, l'altra differenza pratica erano le modalità di Emacs. Ti rendono la vita tremendamente più semplice quando modifichi XML, C / C ++ / Java / qualunque cosa, LaTeX e le lingue più popolari che ti vengono in mente. Ti fanno venire voglia di tenere l'editor aperto per lunghe sessioni e lavoro.

Tutto sommato, dirò che Vim ti attira per compiti di modifica brevi e veloci; mentre Emacs ti incoraggia ad immergerti per lunghe sessioni.


1
Non credo che le modalità semplificino la vita, al contrario. E Larry Tesler pensa lo stesso .
Eliran Malka,

2
In che modo le modalità di Emacs aiutano con la codifica? (Ci sono nuovo ...)
jvriesem il

4
Molto tempo fa sono passato da vi a emacs per quattro motivi: (a) un clic per passare al successivo errore del compilatore, (b) integrazione gdb, (c) grep e find-grep. È possibile fare queste cose in vim ora?
zzz777,

"Avvio di Vim è stato sempre più veloce di Emacs" - se si mantiene in esecuzione un server emacs, eseguire il tarting di emacs-client è molto veloce. Ho degli script per quello, che replica (usando git) su tutte le mie macchine. (Io * do * uso anche vim, in realtà; dipende sempre da dove mi trovo e da che compito è)
Jay

"Vim è stato sempre più veloce da avviare rispetto a Emacs" - inoltre, con use-packagee la sua :deferopzione, il mio Emacs si apre quasi immediatamente. Ho persino rinunciato a usare emacsclient.
Jay,

37

Il VI è sempre disponibile e verrà eseguito sulla modalità utente singolo più paralizzata, grafica non funzionante, nessuna mappa di tasti, macchina a collegamento lento - quindi vale la pena sapere come modificare semplici file al suo interno solo per attività sysadmin.

Emacs è un'interfaccia utente completa in un editor. L'idea è di accendere Emacs quando avvii la macchina e non la lasci mai. È possibile che siano presenti migliaia di sessioni.

Se valga la pena apprendere le capacità di Emacs rispetto all'utilizzo di un editor / IDE della GUI e all'utilizzo di qualcosa come python / awk / etc per compiti extra dipende da te.


2
Conosco VI solo per questi motivi, ma al giorno d'oggi direi che è improbabile che tu possa incontrare un sistema UNIX senza almeno un'installazione EMACS di base, e può rendere un ambiente di shell scadente più tollerabile.
Kendall Helmstetter Gelner,

3
Oppure, inceppare busybox in un initrd ed eseguire il debug di un driver di archiviazione rotto per il dispositivo di avvio, così presto nel processo di init che tutto ciò che hai è il disco ram iniziale, eppure hai ancora un editor - vi.
smcameron,

2
Dopo un po 'con vi, le tue dita conoscono i movimenti, ma non riesci a ricordare quali siano i tasti reali!
Martin Beckett,

10
Ho pensato edche fosse "sempre disponibile e funzionerà con la modalità di utente singolo più paralizzata, grafica non funzionante, nessuna mappa di tasti, macchina a collegamento lento". Aspetta, che anno è questo? (Sospiro ed, non ti dimenticherò mai.)
belacqua

2
@Kendall: Ubuntu Linux attuale non viene fornito con emacs installato.
intuito il

25

Sono un vero fan di Emacs, ma conoscevo VI molto prima di conoscere Emacs. Detto questo, faccio imparare a VI tutta la mia gente perché è sempre disponibile, ovunque. Non posso sbagliare con nessuno dei due.


2
Anche questa è la mia esperienza ... Emacs o uEmacs non sono mai stati disponibili. Il mio primo editore è stato uEmacs (su Amiga) ma da quando ho imparato vim era semplicemente troppo comodo avere in giro.
Marius,

Questa è fondamentalmente anche la mia esperienza. Vi è ovunque e generalmente installato come $ EDITOR predefinito sui sistemi unix, quindi devi conoscerlo se stai lavorando con unix. Detto questo, uso ogni giorno emacs per l'editing del testo e lo adoro.
Fergie,

14

Sembra che sia già stata selezionata una risposta, ma la grande differenza per me è sempre stata la modale contro non modale. Vim è modale, il che significa che effettua ottimizzazioni basate su un set specifico di modalità di utilizzo. Almeno è così che l'ho sempre guardato. Ciò rende l'utilizzo di Vim un'esperienza diversa perché invece di avere un'area di lavoro in cui si digita il codice, si sta davvero dicendo a un ambiente di agire sul testo. Questo è il motivo per cui le persone dicono cose come Vim che stai davvero imparando una lingua. : Wq e: s / foo / bar fanno tutti parte di un ambiente simile a una shell che modifica e legge il testo.

Emacs d'altra parte è molto più vicino alla maggior parte degli editor / elaboratori di testi / ecc. vedi oggi. Hai uno spazio di lavoro che ha un'interfaccia altamente programmabile. Ecco perché vedi cose come e-mail, irc, shell, ecc. Come programmatore è facile pensare in termini di dire "prendi il numero di riga su cui mi trovo e fai qualcosa con le informazioni". Il desiderio di lasciare l'editor diminuisce perché invece di dover uscire, aprire qualche altra app / lingua e fare cose su del testo, hai Emacs dove puoi fare queste cose nell'ambito del tuo editor.

Le due idee non sono necessariamente contrastanti, ma è semplicemente che rivelano due diversi focus. Personalmente uso Emacs, ma ho visto persone che conoscono Vim davvero bene e possono onestamente dire che non importa quale scegli. Prima ho provato Vim, ma Emacs ha finito per attaccare per me. È vero che qualunque cosa tu scelga, dovresti essere almeno un po 'esperto in Vim in quanto è sempre sempre disponibile.


13

Ho iniziato con vi, sono andato su emacs, poi su vim. Ho pensato di provare Emacs per vedere cosa è cambiato negli ultimi cinque anni. (A proposito di IDE, ero entrato in eclissi da un po ', ma preferisco la finestra del mio terminale che collega il mio mac al mio Linux box (del marito)).

La cosa taglia e incolla mi ha infastidito ultimamente. Taglia e incolla in Vim richiede più passaggi rispetto a Emacs, IIRC. E incollare dal dire un browser a una finestra terminale è irritante a meno che tu non faccia qualcosa di fantasioso che non mi va di fare, quindi sopporto la strana indentazione. Penso che modificare più file in emacs sia stato più semplice. Almeno saltando da un file all'altro se li hai entrambi sullo schermo.

Non ho mai giocato con le fantasiose funzionalità di vi o emacs, dato che mi piace solo occuparmi della programmazione. Tutto ciò di cui ho bisogno sono i bei colori e la corretta conversione da scheda a spazio (particolarmente importante con Python).

Penso che tutto dipenda da se vuoi usare :wqo Ctrl-x Ctrl-s(IIRC) per salvare un file se non ti importa delle cose fantasiose.

@mgb era corretto. Sono stato nel minimo indispensabile per sistemare qualcosa solo un mese o due fa in una distribuzione Debian. vi era l'unico editor disponibile.


1
Questo non è ancora uno e fatto, ma è molto più facile che regolare tutte le impostazioni che rovinano le paste terminali. Usa :set paste, quindi incolla il testo e quando hai finito :set nopastetornerà alla modalità normale. C'è anche il :set pastetoggle=<F2>comando che lo commuterà usando la combinazione di tasti scelta.
hbar,

In modalità rientro, puoi fare ^R^P+per incollare dagli appunti e mantenere il rientro corrente. ^R^O+lascerà cadere il rientro. ^R+lo inserirò come se lo avessi digitato. :help i_^R^Pper maggiori informazioni.
intuito il

3
Non posso immaginare che tagliare / incollare sia più facile di yyp. Inoltre, vedi qui per tagliare e incollare da e verso diverse finestre stackoverflow.com/a/8757876/654789
puk

@puk - Ctrl-k (yank) / Ctr-y (put) è altrettanto facile in emacs. In Emacs hai anche più registri (az), puoi salvare il testo o la posizione corrente in ...
Kendall Helmstetter Gelner,

3
vim ha anche più registri
TamaMcGlinn il

12

C'è un'enorme differenza a livello quotidiano - Vim (o qualsiasi variante vi) è intrinsecamente modale (vai in modalità di comando dove non puoi modificare) e Emacs (insieme alla maggior parte degli altri editor) non lo sono.

Certo, usando i menu e simili non devi davvero entrare in modalità comando in Vim - all'inizio. Ma per usare anche una minima parte del potere di Vim lo farai. Questo è al centro del dibattito Vim / Emacs.

Personalmente, penso anche che Emacs sia molto più estensibile. Puoi trovare pacchetti Elisp per molte cose.

Sono curioso, però, perché stai pensando di imparare uno di questi su un IDE più tradizionale. Per cosa vuoi imparare uno di questi?


8
Voglio solo impararlo per vedere se resiste al suo clamore, ad essere sincero. Ho visto quanto sono flessibili entrambi, e ho visto degli esperti fare qualcosa di piuttosto folle in loro, e voglio vedere se vale la curva di apprendimento. Inoltre, il mio IDE non supporta Lisp. :)
Sasha Chedygov,

3
Hmm. Il problema è che c'è così tanto di Emacs ... ma la cosa che lascio ancora un IDE per usare emacs è una serie complessa di attività ripetitive, che automatizzo usando la registrazione macro. Ad esempio puoi prendere una parola o un'espressione corrente, copiarla in un "buffer" (pensa che taglia / incolla solo ne puoi avere più di una), quindi vai in un altro file, digita del testo in parte usando il valore copiato e poi un altro in precedenza anche il valore copiato, far avanzare il cursore, salvare la posizione e tornare nuovamente al primo buffer ... quindi ripetere il processo per la riga successiva del file originale.
Kendall Helmstetter Gelner,

1
Ho usato pesantemente macro sia in vi che in Emacs. Quello che ti manca è il fatto che Emacs ha una selezione molto più ampia di metodi a cui accedere mentre usi le macro, e il fatto che puoi usare i buffer di taglio ovunque, anche nel mezzo dei termini di ricerca, ad esempio. Per favore, dimmi come scriveresti una macro che selezionerebbe una parola di un'espressione basata su una regex, prenda il termine trovato, cerchi un altro documento su quel termine e poi faccia delle sostituzioni?
Kendall Helmstetter Gelner,

2
@ kendall-helmstetter-gelner - questo è possibile con vimscript, o le lingue per cui vim ha i collegamenti (come ruby ​​/ vim / tcl / perl). Hai accesso a tutte le funzioni di Vim e ai buffer degli editor dai linguaggi di scripting.
segy,

1
È impressionante ma fare lo stesso in Emacs richiede solo l'uso dei tasti che già conosco per formare una macro complessa, invece di doverla scrivere a mano. È facile per chiunque conosca emacs creare una macro che svolga tale compito, ma direi che non ci sono molti utenti VI che potrebbero costruire la macro che hai creato senza una buona dose di ricerca.
Kendall Helmstetter Gelner,

11

C'è stato molto da dire su entrambi i redattori, ma ho solo 5 pence da aggiungere. Entrambi gli editor sono fantastici e non puoi sbagliare con nessuno dei due.

Sono un utente vi / vim da circa 15 anni. Ho provato a convertirmi in emacs diverse volte, ma ogni volta stavo piuttosto scoprendo che vim può effettivamente fare la cosa mancante fuori dalla scatola senza la necessità di scrivere un'estensione lisp o installare qualcosa.

Per me la principale differenza negli editor che vim ti fa usare l'ambiente / sistema operativo, mentre emacs cerca di incapsularlo o sostituirlo. Ad esempio, puoi aggiungere una data nel testo in base a: r! Date in vim o calendario con: r! Cal 1 2014, o persino sostituire il contenuto del buffer con la versione esadecimale del contenuto. Per esempio. :%! xxd, modifica hex e poi torna indietro con:%! xxd -r e molti altri usi, come built-in grep, sed, ecc.

Un altro esempio è l'uso con jqe gron. Per esempio. incollare il blob json nell'editor e quindi eseguirlo per la trasformazione:

:r!curl -s http://interesting/api/v1/get/stuff
:%!gron | grep 'interesting' | gron -u

O

:%!jq .path.to.stuff

Ognuno dei comandi di cui sopra può essere eseguito separatamente tramite :%!<command> , dove %significa tutto il documento, ma può anche essere eseguito su selezione, linee selezionate, ecc. Qui gron outputpuò essere usato comejq percorso.

È inoltre disponibile la funzionalità di modifica batch EX, ad es. Sostituendo determinate parole, riformattando il codice, convertendo dos-> unix caratteri newline, esegui una macro su diciamo 100 file alla volta. Si fa facilmente con ex. Non sono sicuro che emacs abbia qualcosa di simile.

In altre parole, IMHO vim si avvicina alla filosofia unix. In genere è più semplice e più piccolo, ma se conosci il tuo sistema operativo e i tuoi strumenti, probabilmente non avrai bisogno di più di quello che (VIM) ha da offrire. Non lo faccio mai.

Inoltre vi è defacto standard su qualsiasi sistema unix / linux, perché imparare a usare 2 strumenti che fanno la stessa cosa. Naturalmente alcuni sistemi offrono mg o qualcosa di simile, ma sicuramente non tutti. Unix + Vi <3.

Bene, solo i miei 5 pence.


8
"Vim si avvicina alla filosofia unix." - Stai parlando qui della filosofia relativa agli strumenti disponibili dalla tua shell. La shell stessa, tuttavia, è un grande agglomerato di built-in, storia, globbing, controllo dei processi, programmabilità e così via. Emacs è chiaramente più vicino alla filosofia delle shell unix: fornisce un ambiente altamente personalizzabile all'interno del quale gli strumenti possono essere usati insieme e facilita all'utente di estendere il set di strumenti con i propri frammenti di codice mentre lavorano. Penso che possiamo vederlo sia emacs che vim sono fortemente radicati nella tradizione unix.
Matt

1
Grazie per il tuo commento. Non era assolutamente mia intenzione iniziare una guerra tra editori qui né offendere gli utenti di emacs . Trovo semplicemente più semplice e portatile invocare i comandi effettivi dalla shell (o dall'interno dell'editor) anziché scrivere estensioni complesse per incapsulare la funzionalità in emacs , che tende a gonfiare l'ambiente nel tempo. Queste estensioni tuttavia dipendono dalle preferenze dell'utente e possono essere eseguite ma non applicate in alcun modo da nessuno degli editor. Quindi d'accordo con te per quanto riguarda il emacs e vi (m) posto nella tradizione UNIX.
Alex

1
Giusto per continuare la non guerra, spero fosse chiaro che non ero in disaccordo con la tua analogia "vim è più simile a uno strumento unix". Mi è venuto semplicemente in mente che questa intuizione potrebbe essere estesa con "ed emacs è più simile a una shell unix". :-)
Matt

@Matt: mi piace l'analogia. Amen per questo. ;)
Alex

2
Puoi fare tutto ciò che dici, e molto altro, in emacs (la modalità hexl, ad esempio, va direttamente alla modifica del file in esadecimale con un'anteprima ASCII a lato). Conosco anche VI abbastanza bene, ma la creazione di macro è molto più semplice e flessibile in Emacs e può semplicemente fare molto di più delle implementazioni VIM più moderne. Questo è il motivo per saperlo, perché emacs è nella maggior parte dei luoghi e può offrire un vero impulso alla modifica del testo.
Kendall Helmstetter Gelner,

10

Per me i professionisti di emacs sono,

  • tramp-mode ti permette di modificare i file remoti su ssh. proprio come i file locali.
  • tramp-mode + dired = client sftp con funzionalità complete
  • supporto per ogni lingua di cui avrete mai bisogno.
  • emulatore di terminale integrato (term-mode) in modo da poter continuare a programmare senza passare da un'applicazione all'altra.
  • estensibilità tutto ciò che non ti piace puoi cambiare usando lisp.

11
FWIW: vim ha praticamente i primi 3 (anche se con nomi diversi. "Tramp-mode" è "netrw" in vim). # 4 è generalmente considerato un bug, non una funzionalità da parte degli utenti di VIM. # 5 è vero in vim se sostituisci "elisp" (il peggior dialetto lisp di sempre, mi dicono i miei amici amanti di Emacs) con python / mzscheme / perl / ruby ​​/ tcl / vimscript.
Laurence Gonsalves il

3
puoi commentare perché # 4 è un bug?
Hamza Yerlikaya,

2
Dai un'occhiata al componente aggiuntivo Conque per una shell integrata in vim.
intuito il

9

Per me, emacs ha strumenti di sviluppo migliori (non solo strumenti basati su tag).


9

Vorrei inserire qui una citazione dal libro "L'arte della programmazione UNIX":

Molte persone che usano regolarmente sia vi che Emacs tendono a usarle per cose diverse e trovano utile conoscerle entrambe.

In generale, vi è la soluzione migliore per piccoli lavori: risposte rapide alla posta, semplici modifiche alla configurazione del sistema e simili. È particolarmente utile quando si utilizza un nuovo sistema (o un sistema remoto su una rete) e non si hanno a portata di mano i file di personalizzazione di Emacs.

Emacs si distingue per sessioni di editing estese in cui è necessario gestire attività complesse, modificare più file e utilizzare i risultati di altri programmi durante la sessione. Per i programmatori che usano X sulla loro console (che è tipico dei moderni Unix), è normale avviare Emacs poco dopo il tempo di accesso in una grande finestra e lasciarlo in esecuzione per sempre, possibilmente visitando dozzine di file e persino eseguendo programmi in più sottofinestre Emacs.

Quello che voglio davvero evidenziare qui è il seguente: « Molte persone trovano utile conoscere entrambi


Questo è probabilmente obsoleto. Penso che in quei giorni la capacità integrata di Emacs di avere Browser, SSH, Music Player e sistemi lenti che hanno smesso di avviare altre app lo ha fatto credere che fosse meglio aprire un'app e attenersi ad essa?
Nishant,

La grande notizia è: non è obsoleta! Puoi usare Browser, Music Player ecc. Al di fuori di Emacs, ma ciò che Emacs offre davvero è la stessa buona interfaccia per tutte queste funzioni e l'unico modo (Elisp) per estenderle.
Andriy Tykhonov,

Secondo me il punto di vista di TAUP su Emacs è obsoleto perché, a quei tempi, Emacs era un vantaggio di averne uno in quanto era un'unica app in esecuzione che poteva fare più cose alla volta - come irc, musica, editing remoto ecc. Tuttavia, oggi hai applicazioni eccellenti per ciascuno di questi scopi e la memoria non è un problema come prima ... Immagina di leggere Gmail in Emacs - Voglio dire che l'interfaccia di Gmail ha davvero dei fantastici collegamenti integrati, personalizzandoli in un client di posta elettronica Emacs impiegare molto tempo e potrebbe non essere buono come l'interfaccia Gmail originale ecc.
Nishant,

Non è obsoleto! :)
Andriy Tykhonov,

> Tuttavia oggi hai applicazioni eccellenti per ciascuno di questi scopi Sì, ma hai tutte queste applicazioni con interfacce, configurazioni, esperienza utente ecc. Molto diverse ... Ma Emacs è lo strumento unico! Ad esempio, mi piacciono molto le associazioni dei tasti Emacs, le uso nella shell del browser. Ed è molto bello che almeno alcune cose siano le stesse nelle applicazioni ...
Andriy Tykhonov,

9

Vantaggi di Emacs

  • Emacs ha sia un'interfaccia non modale (per impostazione predefinita) sia una modale (ad es. Può emulare vim e vi attraverso Evil, Viper o Vimpulse).

  • Uno dei programmi per computer più portati. Funziona in modalità testo e con interfacce utente grafiche su una vasta gamma di sistemi operativi, tra cui la maggior parte dei sistemi simili a Unix (Linux, i vari BSD, Solaris, AIX, IRIX, macOSetc.), MS-DOS, Microsoft Windows, AmigaOS, e OpenVMS. I sistemi Unix, sia gratuiti che proprietari, forniscono frequentemente Emacs in bundle con il sistema operativo.

  • L'architettura del server Emacs consente a più client di collegarsi alla stessa istanza Emacs e condividere l'elenco buffer, kill ring, annullare la cronologia e altri stati.

  • Pervasivo sistema di aiuto online con combinazioni di tasti, funzioni e comandi documentati al volo.

  • Variante del linguaggio di programmazione Lisp estensibile e personalizzabile (Emacs Lisp), con funzionalità che includono:

  • Un file manager potente ed estensibile (diretto), un debugger integrato e una vasta gamma di strumenti di sviluppo e altri.

  • Avere ogni comando come una funzione Emacs Lisp abilita i comandi a DWIM (Do What I Mean) rispondendo programmaticamente alle azioni passate e allo stato del documento. Ad esempio, un comando switch-or-split-window potrebbe passare a un'altra finestra se ne esiste una oppure crearne una se necessario. Ciò riduce il numero di sequenze di tasti e comandi che un utente deve ricordare.

  • "Un sistema operativo all'interno di un sistema operativo". Emacs Lisp consente ad Emacs di essere programmato ben oltre le funzionalità di modifica. Anche un'installazione di base contiene diverse dozzine di applicazioni, tra cui due browser Web, lettori di notizie, diversi agenti di posta, quattro client IRC, una versione di ELIZA e una varietà di giochi. Tutte queste applicazioni sono disponibili ovunque Emacs funzioni, con la stessa interfaccia utente e funzionalità. A partire dalla versione 24, Emacs include un gestore di pacchetti, che semplifica l'installazione di applicazioni aggiuntive tra cui browser Web alternativi, EMMS (Emacs Multimedia System) e altro. Sono inoltre disponibili numerosi pacchetti per la programmazione, inclusi alcuni mirati a combinazioni linguistiche / librerie specifiche o stili di codifica.

Vantaggi degli editor vi-like

  • I comandi di modifica sono componibili
  • Vi ha un'interfaccia modale (che Emacs può emulare)
  • Storicamente, vi si carica più velocemente di Emacs.
  • Sebbene profondamente associato alla tradizione UNIX, funziona su tutti i sistemi in grado di implementare la libreria C standard, inclusi UNIX, Linux, AmigaOS, DOS, Windows, Mac, BeOS, OpenVMS, IRIX, AIX, HP-UX, BSD e POSIX sistemi.
  • Estensibile e personalizzabile tramite Vim script o API per linguaggi interpretati come Python, Ruby, Perl e Lua
  • Onnipresente. In sostanza tutti i sistemi Unix e Unix sono dotati di vi (o una variante) integrata. Vi (ed ex, ma non vim) è specificato nello standard POSIX.
  • Gli ambienti di ripristino del sistema, i sistemi incorporati (in particolare quelli con busybox) e altri ambienti vincolati spesso includono vi, ma non emacs.

Fonte: https://en.wikipedia.org/wiki/Editor_war


7

Ora non hai nemmeno bisogno di pensare alla differenza tra questi due a causa di Spacemacs . È una distribuzione Emacs guidata dalla comunità.

Come detto,

Il miglior editor non è né Emacs né Vim, sono Emacs e Vim.

Spacemacs combina il meglio di Emacs e Vim, il che semplifica notevolmente la vita e il lavoro.

Vedi lo screenshot qui sotto,


(fonte: spacemacs.org )


3
Questo è barare ... È emacs con alcune configurazioni funky;) In realtà un sacco di configurazioni in realtà
Alex

2
Questo è fantastico - quando funziona. In caso contrario, se non conosci già elisp ed emacs o non riesci a trovare i principali collaboratori nella chat gitter, di solito sei bloccato e sfortunato. (a volte l'eliminazione della directory melpa in .emacs può risolvere le cose, però ...)
Aaron Hall

1
Sebbene abbia molte più cose di quelle di cui ho bisogno, sono davvero soddisfatto di Spacemacs. Ho i miei dotfile su github in modo da poter installare nuove macchine facilmente / velocemente, e dal momento che uso il male (legature di tasti vim) ho abbastanza abilità per cavarmela quando devo lavorare su macchine in cui non riesco a installare la mia configurazione di spacemacs.
anr78,

6

La differenza più grande per me nella scelta di usare emacs su vim è stato il supporto gdb integrato in emacs. Vim non ha questo incluso nella sua distribuzione predefinita e il progetto lì per l'integrazione di gdb e vim era quasi impossibile far funzionare con MacVim


1
Ho usato Vim per l'editing e Xcode per il debug, è
tutt'altro

4

È come mele e arance. Entrambi hanno un design e una filosofia diversi. Vim è un editor di testo mentre Emacs è un interprete Lisp che esegue l'editing di testo.

Uso Vim perché è veloce, lento e veramente bravo a manipolare i testi. Ha un'associazione di tasti naturale componibile che può rendere le tue attività di sviluppo davvero armoniche. Vim si basa sulla semplice philiosphy * nix di fare una cosa davvero bene: la manipolazione del testo.

Estendere Vim usando bash / zsh e tmux è di solito facile e ti permette di imparare molte cose. IMHO questa è una buona curva di apprendimento. La cosa fondamentale è imparare come integrare queste cose per ottenere un'applicazione di lavoro più grande. Con Vim dovrai imparare l'integrazione perché non si integra naturalmente a meno che tu non gli dica come farlo. Un'altra estensione utile che uso è Tig. È un frontend Git basato su ncurses. Ho solo un'associazione che apre Tig in silenzio e poi faccio tutte le cose Git lì.

Sta all'utente finale decidere cosa funziona meglio. Che Emacs e Vim abbiano superato la prova del tempo è la prova della loro dignità. Alla fine un buon programmatore non ha bisogno di altro che una penna e un foglio per essere creativo. I buoni algoritmi non hanno bisogno di editor per supportarli. Quindi provali entrambi e vedi cosa ti rende più produttivo. E impara i modelli di progettazione da entrambi questi software in quanto ce ne sono molti da imparare e scoprire!



3

Emacs è davvero un programma tutto e vi (m) è davvero solo un editor. Se stai modificando il testo, vanno entrambi bene, ma preferisco emacs, semplicemente perché devo spostarne uno dalla riga iniziale per spostarmi e continuare a digitare le cose sbagliate in modalità comando. Se non hai questo problema, vi (m) potrebbe essere l'editor per te.


2

Un punto di vista itterico:

vi (non vim) è una necessità professionale. Hai sempre una qualche forma di vi facilmente disponibile, indipendentemente dall'ambiente. Puoi essere in vi quando sei in emacs, puoi essere in vi per creare comandi bash in unix-land.

Anche Microsquish deve supportare vi (anche se fanno un buon lavoro per nasconderlo) a causa della conformità aziendale e aziendale con gli standard pubblicati.

A mio avviso, se stai svolgendo un lavoro pratico in un ambiente affollato - non un fiore di serra limitato a un impianto di perforazione in un ambiente di sviluppo, o in ambito accademico - sapere molto su un editor di fantasia è un handicap sul lavoro. Non imparare tutti i trucchi di fantasia in vim o emacs e non sviluppare un sacco di macro per rendere l'ambiente di editing piegato alla tua volontà. È un enorme spreco di tempo che ti ostacola quando ti occupi di macchine diverse che probabilmente non puoi giustificare in un ambiente di fabbrica.

Leggi l'articolo di Bill Joy: è un esercizio di ingegneria molto competente, forse anche bello, per la modifica di testo semplice molto, molto velocemente. La regola di Parito si applica qui: l'80% dei frutti è nel 20% dei cestini. La modifica del testo semplice molto rapidamente è il punto cruciale della competenza di modifica - tutto il resto è facoltativo - e talvolta dannoso.


3
Di quale documento stai parlando? Puoi almeno dare un nome, se non un link?
darkfeline

2
"Anche la SM deve supportare vi." Puoi supportarlo?
dodgethesteamroller,

1

Se ti muovi molto da un sito all'altro o il tuo lavoro prevede l'accesso a sistemi di produzione, allora Vim è la strada da percorrere.

Tutte le macchine * nix avranno vi installato per impostazione predefinita.

La maggior parte dei sysdamin preferisce ksh come shell predefinita. ksh usa i tasti vi (o emacs) per cercare nella cronologia e modificare la riga di comando.

Se non conosci bene vi, sei gravemente handicappato quando accedi a una casella unix con una configurazione standard.

Solo per questo motivo, consiglierei vim come il tuo normale editor quotidiano. Ho visto i fan di emacs strappare i capelli cercando di modificare i file di configurazione su un server unix bare bones.


1
Per bash prova a usare set -o vinel tuo .bashrc, invece di set -o emacs, che è usato di default. Non ho mai usato ksh, ma potrebbe essere lo stesso.
sabato

1

Nella tua domanda, non hai detto che vuoi che sia programmato in Lisp! Ma mentre hai commentato le tue risposte, ho capito che in realtà vuoi un'interfaccia di programmazione LISP.

Per quel preciso compito, dimentica semplicemente Vi. L'integrazione di Emacs con LISP è meravigliosa! Dovresti usare SLIME. Avrai quindi una meravigliosa integrazione con REPL, essendo in grado di evalfunzioni, buffer o file direttamente in un interprete in esecuzione in un buffer emacs e molto altro ...


1
Sì, ne sono consapevole, ma la ricerca di un editor Lisp decente non è stata la mia ragione per porre questa domanda - era solo un esempio. Comunque grazie per la risposta!
Sasha Chedygov,

1

Ho lavorato con spacemacs per circa 2 anni e neovim per circa un anno in un ambiente di produzione / ricerca. Spacemacs è emacs con un paio di belle funzioni extra come livelli ecc. E neovim è di nuovo una forcella di VIM con alcune funzionalità extra.

Sono abbastanza insoddisfatto di entrambi in termini di esperienza. E sono ancora alla ricerca di una soluzione a lungo termine per le mie esigenze di modifica del testo.

Ecco un semplice confronto:

  • Neovim, vim, emacs, spacemacs, ecc. Tutti questi editor consumano meno risorse rispetto alla maggior parte degli editor là fuori.

  • Neovim / vim è leggermente più veloce di emacs, notevolmente più veloce di spacemacs.

  • In termini di esperienza di editing. Posso facilmente dire che i pacchetti emacs si sentono superiori. Penso che sia perché si fondono meglio con il nucleo di emacs.

  • Vimscript è bello e ci sono sicuramente grandi progetti anche nell'ecosistema di VIM. La cosa buona è che sono meglio documentati rispetto alla maggior parte dei progetti emacs che ho visto finora.

  • Entrambi possono essere glitch a seconda del pacchetto che si sta utilizzando. Gli spacemac tendono a congelarsi e i neovim tendono a mostrare messaggi di errore spaventosi, quindi scegli il tuo veleno lì.

  • Il montaggio modale in vim, non è un concetto intuitivo, ma una volta che ti ci abitui, lo vuoi comunque. Entrambi gli editor lo forniscono.


1
"Modifica modale (...) una volta che ti ci abitui, lo vuoi comunque" - è interessante. Ho passato anni ad usare Emacs con la modalità malvagia, ed ero abituato al montaggio modale, e ora sono tornato al modo non modale ... Mi sento meglio. Penso che questo dipenda non solo dalla persona, ma anche dal contesto / tempo nella vita / qualunque cosa. Gusto, suppongo. :)
Jay

1
@Jay immagino, ma non ti perdere, cose come la selezione delle colonne e saltare con ": XX"?
Kaan E.

Non proprio ... Uso la selezione del rettangolo di Emacs a volte, e invece di: xx Faccio "Mg g XX" - qualche altra sequenza di tasti, ma raramente ho bisogno di andare direttamente a una riga. Di solito, un'applicazione Emacs (debugger, ecc.) Mi manderà sulla riga giusta.
Jay,

0

Esecuzione della sequenza di tasti: la modifica di vi mantiene ogni permutazione dei tasti digitati. Questo crea un percorso nell'albero decisionale che identifica in modo inequivocabile qualsiasi comando, mentre i comandi Emacs sono una combinazione di tasti digitati eseguiti immediatamente, che lascia all'utente la scelta se usare o meno un comando.

Utilizzo della memoria e personalizzazione ::: vi è un programma più piccolo e più veloce, con una capacità di personalizzazione più limitata, mentre Emacs impiega più tempo per avviarsi e richiede più memoria. Tuttavia, è altamente personalizzabile e include un gran numero di funzionalità, in quanto è essenzialmente un ambiente di esecuzione per un programma Lisp progettato per l'editing di testo.


0

vim è un pratico editor, basta digitare vim filenameper aprire il file, modificare, salvare e chiudere.

emacs è un "sistema operativo" che finge di essere un editor, puoi evalcodificare per modificarne il comportamento ed estenderlo come preferisci. UNmode per ricevere / inviare e-mail su emacs è come un software di posta elettronica sul sistema operativo.

Quando eseguo semplici modifiche, ad esempio, modifica un file di configurazione, utilizzo vim .

Altrimenti, non lascio mai emacs .


0

Penso che la differenza principale sia l'obiettivo del design. VIM è per UNIX come editor funzionante. Emacs è per hacker GNU e lisp, quindi ha qualche elemento di design misto.

Uso vim sulla mia workstation, mentre adoro anche emacs.


0

Sono un fan di Emacs ma incoraggio altri sviluppatori a imparare il VI perché:

  1. puoi usare VI per modificare i makefile di emacs.
  2. VI include i comandi ed e ogni utente UNIX dovrebbe conoscere ed e sed.

Ho notato diversi commenti su VIM che iniziano più velocemente di emacs. Se ti interessa davvero, esegui emacs in modalità server e alias 'emacs' in 'emacsclient'. Il client è super veloce poiché tutto ciò che fa è toccare il server sulla spalla e dirgli quale file si desidera modificare. Su MacOSX, emacsclient è solo 33K mentre emacs è 287M.

Non sono sicuro che tutto ciò sia necessario su hardware moderno. Sul mio MacBook Pro (Retina 2013), emacs si carica quasi istantaneamente quando lo eseguo dalla shell. Non rilevo alcuna pausa. Quando eseguo Emacs.app (la versione della GUI) potrebbero essere necessari tutti e 3 i secondi.

La maggior parte delle lamentele che sento parlare di emacs sembrano provenire da persone disinformate su emacs. Avendo usato sia vi che emacs dal 1982, ricordo sicuramente un momento in cui emacs si caricava molto più lentamente di vi e utilizzava la maggior parte della memoria fisica nelle mie prime caselle UNIX, ma non è più il caso e non lo è stato per almeno 15- 20 anni.

Una lamentela che concederò è "emacs mignolo". Questo non mi ha mai disturbato affatto quando ero più giovane. Ora che ho 58 anni, il mio mignolo è un po 'dolorante dall'accedere ripetutamente al tasto Control per gli accordi di emacs. Ciò è particolarmente vero sulla tastiera del MacBook Pro in cui Control viene spostato di una posizione verso destra per fare spazio al tasto "fn". Non è così fastidioso quando Control è il tasto in basso a sinistra.


Puoi anche "scaricare" emacs, che in pratica significa scattare un'istantanea delle estensioni elisp compilate che desideri. Emacs si avvia molto più velocemente in questo modo, ma ci vuole un po 'di tempo per determinare quali estensioni si desidera includere.
Phil Harbison,

Inoltre puoi giocare a "Towers Of Hanoi" in emacs. Quant'è fico? :)
Phil Harbison,

Ri: "emacs mignolo". Su alcune tastiere più vecchie, ad es. Sun Type 3/4, su cui si basa HHKB Professional, il Control è posizionato dove normalmente si trova Caps Lock. Non ho l'esperienza di emacs che hai, tuttavia, mi sono abituato molto rapidamente ad avere il controllo nella riga iniziale. Tanto che ho apportato questa modifica su tutte le mie tastiere (anche MacBook Pro). L'HHKB ha alcuni ulteriori miglioramenti, ad esempio Backspace appena sopra Enter ed Esc accanto a 1.
martinweiss

@PhilHarbison potrebbe elaborare "dump"?
A_P

0

Prima ero utente di Vim, poi sono passato a Emacs, poi a VIM, ora sto sperimentando di nuovo con Emacs.

  • Entrambi sono grandi editor.
  • Entrambi sono molto estensibili oggi
  • Entrambi hanno ottimi plugin e community

Come sviluppatori digitiamo molto e, infine, per me spostarmi in buffer e file è il compito più ripetitivo, quindi voglio un editor in cui POSSO SPOSTARMI VELOCEMENTE!

La motivazione per sperimentare di nuovo con emacs è che l'ho lasciato cadere Ctrl ha guidato i tasti più velocemente di VIM, e più facili da ragionare.

In vim hai delle modalità, hai la modalità di inserimento, la modalità visiva, la modalità normale, ciò che accade quando premi qualcosa dipende dalla modalità che sei, è un approccio con stato alla modifica. Ti sposti, entri in modalità inserimento, modifica, esci dalla modalità inserimento e ti muovi di nuovo. Spesso mi perdo se mi manca una pressa ESC o qualcosa del genere.

In emacs non c'è modalità, in pratica premi Ctrl con il tuo rosa e digiti la sequenza di tasti, come Cx Cf, Cx Cs, Cx Cc. Ci sono combinazioni di tasti in cui è necessario rilasciare il tasto Ctrl, io odio questi e li sostituisco sempre con quelli con il controllo premuto.

Penso che l'approccio di emacs sia più veloce nel pensare e digitare, ma Vim ha un'altra forza, a. I suoi comandi sono componibili, di solito hanno un formato. Ad esempio, per eliminare una riga che è possibile utilizzare dd, per eliminare una parola dw. I plug-in sfruttano tale abbattimento, con il plug-in vim-surround puoi eliminare le virgolette con ds "(elimina surround"), elimina fino al successivo / dt/. Elimina fino al precedente /:dT/ e così via. Quindi, finché impari, le cose in movimento iniziano a diventare molto interessanti.

Riassumendo, oggi sono caduto che i legami di emacs sono più veloci per il macro editing e i comandi vim sono più potenti per il microediting

Ho usato vim negli ultimi cinque anni, quindi modifico pensando principalmente a parole, linee, bordi, blocchi, ecc. Elimina questa riga, rimuovi le virgolette, rimpiazza le virgolette, elimina la parola nel cursore, sto cercando di scoprire gli emacs si muove per quello

Come ultima citazione, direi che mi interessa di più di fzf che di emacs o vim, mi piacerebbe avere un editor completamente basato su fzf


-9

In primo luogo Vi (realizzazione originale) non usato oggi. Quello che dici è una derivazione di Vim.

Per estendere la funzionalità di Vim è necessario ricompilare Vim, non Emacs.

Emacs ha Vim in auto (modalità vipera).

Emacs di solito ha bisogno dell'installazione manuale, Vim in genere preinstallato su tutti i sistemi operativi Unix come (ma se hai accesso ssh all'host in modalità tramp, vinci Vim :).

Se provi Vim, odi Emacs, quindi inizia prima da Emacs.

Leggi anche http://www.dina.dk/~abraham/religion/vi-tutorial.html (link vai in basso quindi usa questo )

Cerca una risposta in hxxp: //it.wikipedia.org/wiki/Editor_war


8
Non è necessario ricompilare vim per estenderlo. Non hai nemmeno bisogno di uscire da Vim.
troppo php,

1
Vimscript / Python / Ruby / etc ha accesso a tutte le strutture interne di Vim? Se la base di codice dell'editor aiuta a rendere l'estensione o la complessità dell'estensione a un livello di complessità di EDITOR?
gavenkoa,

1
Gran parte degli script di Vim come MACROS intellettuali. Per estendere Vim hai bisogno di plugin ((
gavenkoa,

1
Vi non è usato?!?! Che cosa? Nvi è considerato originale? O un "vi tradizionale"? Molti sistemi come FreeBSD, ArchLinix raggruppano il tradizionale vi o nvi e ne sono grato. Alcuni sistemi come Debian vanno con vim che è in modalità compatibile di default (sembra quasi vi tradizionale)
Alex

1
@gavenkoa, sono assolutamente d'accordo con Alex, ovviamente non hai mai provato un sistema che richiede l'installazione manuale come Gentoo, alcuni BSD o Arch Linux. Inoltre, "Se provi Vim odi Emacs, quindi inizia prima da Emacs." mi farebbe provare prima VIM, e anche tu, se ci pensi un po '. Questo mi ricorda la gente che dice di non provare prima la programmazione funzionale. Sono triste, non l'ho provato prima ...
JMCF125,
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.