Emacs vs Vim

Emacs och vim är de två mest använda textredigerarna på Unix och Unix-liknande system. Det finns en lång historia av konkurrensen mellan dessa två textredigerare, som är mycket mer avancerade än andra textredigerare på Unix-plattformen. Medan båda redigerarna har samma funktionalitet genom sina plugins, skript och genvägar, är deras metoder lite annorlunda.

Jämförelsediagram

Emacs mot Vim jämförelsetabell
Emacsvim
Förhandsgranskning 23 7.2a.13 (2008-07-04)
Skrivet i C och Emacs Lisp C och Vim-skript
Plattform Cross-platform, inklusive Unix, Linux och Microsoft Windows Cross-platform, inklusive Unix, Linux och Microsoft Windows
Tillgänglig i Engelska, Kinesiska, Franska, Italienska, Polska, Ryska Engelska, Kinesiska, Franska, Italienska, Polska, Ryska
Typ Textredigerare Textredigerare
Licens GNU GPL Gratis programvara, välgörenhet, GPL-kompatibel
Hemsida http://www.gnu.org/software/emacs/ http://www.vim.org/
Introduktion (från Wikipedia) Emacs är en klass av funktionsrika textredigerare, som vanligtvis kännetecknas av deras extensibility. Emacs har över 1000 redigeringskommandon. Det gör det också möjligt för användaren att kombinera dessa kommandon i makron för att automatisera arbetet. Vim är en textredigerare som första gången släpptes av Bram Moolenaar 1991 för Amiga-datorn. Namnet "Vim" är en akronym för "Vi IMproved" eftersom Vim skapades som en utökad version av vi-redaktören, med många ytterligare funktioner som är utformade för att vara till hjälp
Design av Richard Stallman Bram Moolenaar
Initial release 1976 1991
Stabil frisättning 22,3 (2008-09-05) 7,2 (2008-08-09)
Buffertflikar Stöds i både kommandoraden och grafiskt användargränssnitt Stöds i både kommandoraden och grafiskt användargränssnitt

Innehåll: Emacs vs Vim

  • 1 Emacs och Vim användargränssnitt
    • 1.1 Lättlärdhet
    • 1.2 Produktivitet och redigeringshastighet
  • 2 RAM-användning av Emacs vs Vim
  • 3 Extensibility och anpassning av Emacs vs Vim
    • 3.1 Grafiskt användargränssnitt (GUI)
  • 4 referenser

Emacs och Vim användargränssnitt

Vim använder redigeringslägen - oftast kommandot läge och infogningsläge. Vim syftar till att minimera antalet tangenttryckningar som en användare måste trycka på, eftersom vi, på vilken Vim är baserad, utformades för att användas över långsamma terminaler.

Emacs använder ändringsnycklar för att aktivera genvägar, vilket ofta innebär att man trycker flera tangenter samtidigt för en enda funktion. Denna aspekt av Emacs kritiseras ofta.

Lätt att lära

Emacs är lättare att lära sig eftersom det har ett mer naturligt gränssnitt (för användare som är bekanta med GUI-baserade textredigerare). Eftersom Vim har olika redigeringslägen, tycker nybörjare lite lite svårare att lära.

Produktivitet och redigeringshastighet

Vim entusiaster hävdar att när en användare blir bekant med Vims redigeringslägen och kommandon möjliggör det mycket högre produktivitet och effektivitet. Filredigeringen är vanligtvis snabbare med Vim än med Emacs på grund av Vims avsiktligt hastighetsstyrda gränssnitt. Markörrörelsen kan till exempel styras via H, J, K, och L nycklar i normalt läge. Det betyder att användarens händer inte behöver lämna "hemradie" -positionen, vilket förbättrar effektiviteten men kommer till priset för att lägga till överhead eftersom lägesomkoppling krävs för att välja mellan rörelse och textredigering. I Emacs (med standardkonfigurationen) flyttar användaren markören med Ctrl-B eller Ctrl-F genvägar, vilket kan sakta ner nybörjaren eftersom två knappar måste tryckas. Produktivitets- och effektivitetsförbättringar i Emacs beror på konfigurationen av redigeringsmiljön istället för redaktören själv.

RAM-användning av Emacs vs Vim

Vim är lättare än Emacs och använder mindre minne. Vim förespråkar kritisera Emacs resursförbrukning med tungan-i-kind förslaget att Emacs står för "Åttio megabyte och ständigt byta".

Men med gnuclient kan en enda beständig Emacs-process köras som kan stödja flera kunder samtidigt. Detta ökar starttiden och minskar den totala minnesanvändningen, vilket stänger klyftan mellan Emacs och Vim.

Extensibility och anpassning av Emacs vs Vim

Medan både Vim och Emacs stöder plugins som förbättrar deras funktionalitet, stöder Emacs mycket mer anpassning av redigeringsmiljön. Detta är förmodligen det viktigaste inslaget i emacs och ansvarar för mycket av emacs hängivna följder.

Emacs kan utökas i elisp, medan Vim har sitt eget interna skriptspråk och stöder användning av andra programmeringsspråk för pluginutveckling.

Emacs kan utökas på flyg genom att omdefiniera inbyggda elisp-funktioner, antingen genom att skriva den nya definitionen till Emacs eller genom att ladda upp elisp-filer. Grupper av relaterade ändringar kallas "lägen" och kan enkelt konfigureras för att automatiskt användas för vissa typer av filer (buffertar). Så det är lätt att definiera lägen för olika programmeringsspråk eller ramar som "lisp-läge" eller "Ruby on Rails-läge" eller "PHP-läge". Dessa lägen kan direkt modifiera jämn kärnbeteende hos Emacs, formatera eller färga text automatiskt och lägg till standardmall eller "boilerplate" -text, såsom funktionsdeklarationer och stängningar. Så programmerare tycker att Emacs är mer anpassningsbara till deras specifika krav än Vim. Ändå kan vissa programmerare hitta Vim att i slutändan vara bättre anpassade till sin programmeringsmiljö på grund av dess lika anpassningsbara och helt modala operation.

Vim kan också förlängas med hjälp av kommandotillståndet. Kommandotillståndet möjliggör konfigurationsalternativ, funktioner som ska definieras och makron som ska göras. Faktum är att konfigurationsfiler för Vim bara är kommandon som kan matas in genom kommandotillståndet.

Grafiskt användargränssnitt (GUI)

Både Vim och Emacs har grafiska användargränssnitt. Nästan alla menyalternativ i det grafiska gränssnittet för båda redigerarna är helt enkelt sätt att hantera ett genvägskommando eller snabb konfiguration. GUI: erna för redaktörerna ger inte praktiskt taget några ytterligare funktioner utöver de som finns i CLI (kommandoradsgränssnittet)

Emacs använder XDisplay eller gtk2 för dess GUI. Vim kan använda många andra GUI-bibliotek, till exempel gtk, gnome, gnome2, motiv, athena och neXtaw, förutom gtk2.

referenser

  • wikipedia: Vi-
  • wikipedia: Emacs
  • http://www.io.com/~dierdorf/emacsvi.html
  • http://thomer.com/vi/vi.html
  • Emacs har kraften i Lisp, vilket gör den väldigt flexibel
  • Nybörjarens guide till emacs