Emacs og Vim er de to mest brukte tekstredaktørene på Unix og Unix-lignende systemer. Det er en lang konkurransehistorie mellom disse to tekstredaktørene, som er langt mer avanserte enn andre tekstredaktører på Unix-plattformen. Mens begge redaktørene har lignende funksjonalitet gjennom plugins, scripting og snarveis, er deres tilnærminger litt annerledes.
Emacs | Vim | |
---|---|---|
Forhåndsvisning utgivelse | 23 | 7.2a.13 (2008-07-04) |
Skrevet i | C og Emacs Lisp | C og Vim skript |
Plattform | Tverrplattform, inkludert Unix, Linux og Microsoft Windows | Tverrplattform, inkludert Unix, Linux og Microsoft Windows |
Tilgjengelig i | Engelsk, Kinesisk, Fransk, Italiensk, Polsk, Russisk | Engelsk, Kinesisk, Fransk, Italiensk, Polsk, Russisk |
Type | Tekstredigerer | Tekstredigerer |
Tillatelse | GNU GPL | Gratis programvare, veldedighet, GPL-kompatibel |
nettsted | http://www.gnu.org/software/emacs/ | http://www.vim.org/ |
Innledning (fra Wikipedia) | Emacs er en klasse av funksjonsrike tekstredaktører, vanligvis preget av deres uttrekkbarhet. Emacs har over 1000 redigeringskommandoer. Det tillater også brukeren å kombinere disse kommandoene i makroer for å automatisere arbeidet. | Vim er en tekstredaktør først utgitt av Bram Moolenaar i 1991 for Amiga-datamaskinen. Navnet "Vim" er et akronym for "Vi IMproved" fordi Vim ble opprettet som en utvidet versjon av vi-redaktøren, med mange flere funksjoner designet for å være nyttig. |
Design av | Richard Stallman | Bram Moolenaar |
Første utgivelse | 1976 | 1991 |
Stabil utgivelse | 22,3 (2008-09-05) | 7.2 (2008-08-09) |
Buffer-faner | Støttes i både kommandolinje og grafisk brukergrensesnitt | Støttes i både kommandolinje og grafisk brukergrensesnitt |
Vim bruker redigeringsmodi - oftest kommandomodus og sett inn modus. Vim har som mål å minimere antall tastetrykk som en bruker må trykke på, fordi vi, som Vim bygger på, var designet for å bli brukt over langsomme terminaler.
Emacs bruker modifikasjonstaster for å aktivere snarveier, som ofte innebærer å trykke flere taster samtidig for en enkelt funksjon. Dette aspektet av Emacs er ofte kritisert.
Emacs er enklere å lære siden det har et mer naturlig grensesnitt (for brukere som er kjent med GUI-baserte tekstredigerere). Siden Vim har forskjellige redigeringsmoduser, finner nybegynnere det litt vanskeligere å lære.
Vim entusiaster hevder at når en bruker blir kjent med redigeringsmodusene og kommandoene til Vim, muliggjør det langt større produktivitet og effektivitet. Filredigering er vanligvis raskere med Vim enn med Emacs på grunn av Vims avsiktlig hastighetsdrevne grensesnitt. For eksempel kan markørbevegelsen styres gjennom H, J, K, og L nøkler i normal modus. Dette betyr at brukerens hender ikke trenger å forlate "hjemme rad" -posisjonen, noe som forbedrer effektiviteten, men kommer til en pris for å legge til overhead, da modusbryter er nødvendig for å velge mellom bevegelse og tekstredigering. I Emacs (med standardkonfigurasjonen) beveger brukeren markøren med Ctrl-B eller Ctrl-F snarveier, noe som kan bremse nybegynnerbruken siden to taster må trykkes. Produktivitets- og effektivitetsforbedringer i Emacs avhenger av konfigurasjonen av redigeringsmiljøet i stedet for redaktøren selv.
Vim er lettere enn Emacs og bruker mindre minne. Vim fortaler kritisering av Emacs ressursforbruk med tungen-i-kinnet forslaget om at Emacs står for "Åtti megabyte og konstant bytte".
Men med gnuclient kan en enkelt vedvarende Emacs-prosess kjøres som kan støtte flere kunder samtidig. Dette øker oppstartstiden og reduserer total minnebruk, lukker gapet mellom Emacs og Vim.
Mens både Vim og Emacs støtter plugins som forbedrer funksjonaliteten, støtter Emacs mye mer tilpasning av redigeringsmiljøet. Dette er uten tvil det viktigste elementet i emacs og er ansvarlig for mye av emacs 'hengiven følge.
Emacs kan utvides i elisp, mens Vim har sitt eget interne skriptspråk og støtter bruk av andre programmeringsspråk for pluginutvikling.
Emacs kan utvides i fly ved å redefinere innebygde elisp-funksjoner, enten ved å skrive den nye definisjonen til Emacs eller ved å laste inn elisp-filer. Grupper av relaterte endringer kalles "moduser", og kan enkelt konfigureres til å bli automatisk brukt for bestemte typer filer (buffere). Så det er enkelt å definere modi for forskjellige programmeringsspråk eller rammebetingelser som "lisp-modus" eller "Ruby on Rails-modus" eller "PHP-modus". Disse modiene kan direkte modifisere jevne kjernegrader for Emacs, automatisk formatere eller fargelegge tekst og legge til standardmal eller "boilerplate" -tekst, for eksempel funkliske deklarasjoner og nedleggelser. Så programmerere finner Emacs å være langt mer tilpassbare til deres spesifikke krav enn Vim. Likevel kan noen programmerere finne Vim til å være bedre egnet til deres programmeringsmiljø på grunn av sin like tilpassbare og fullt modale operasjon.
Vim kan også utvides i fly ved hjelp av kommandomodus. Kommandomodusen lar konfigureringsalternativer settes, funksjoner som skal defineres og makroer som skal gjøres. Faktisk er konfigurasjonsfiler for Vim bare kommandoer som kan legges inn via kommandomodus.
Både Vim og Emacs har grafiske brukergrensesnitt. Nesten alle menyelementer i det grafiske grensesnittet for begge redaktørene er ganske enkelt måter å håndtere en snarveiskommando eller rask konfigurasjon. GUIene for redaktørene gir ikke nesten noen tilleggsfunksjoner utover de som er tilgjengelige i CLI (kommandolinjegrensesnittet)
Emacs bruker XDisplay eller gtk2 for sin GUI. Vim kan bruke mange andre GUI biblioteker, for eksempel gtk, gnome, gnome2, motiv, athena og neXtaw, i tillegg til gtk2.