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.
Emacs | vim | |
---|---|---|
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 |
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.
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.
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.
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.
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.
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.