Emacs ja puhti ovat kahta yleisimmin käytettyä tekstieditoria
Vim käyttää muokkaustiloja - yleisimmin komentotila ja lisäystila. Vim pyrkii minimoimaan käyttäjän painettavien näppäilyjen määrän, koska vi, johon Vim perustuu, on suunniteltu käytettäväksi hitaiden päätelaitteiden yli.
Emacs käyttää muokkausnäppäimiä pikanäppäimien käyttöön ottamiseen, mikä usein edellyttää useiden näppäinten painamista samanaikaisesti yhtä toimintoa varten. Tätä Emacs-puoliskoa kritisoidaan usein.
Emacs on helpompi oppia, koska siinä on luonnollisempi käyttöliittymä (käyttäjille, jotka tuntevat GUI-pohjaiset tekstieditorit). Koska Vimillä on erilaisia muokkaustiloja, aloittelijoille on hieman vaikeampi oppia.
Vimin harrastajat väittävät, että kun käyttäjä tutustuu Vimin muokkaustiloihin ja komentoihin, se mahdollistaa huomattavasti suuremman tuottavuuden ja tehokkuuden. Tiedostojen muokkaaminen on yleensä nopeampaa Vimin kanssa kuin Emacsin kanssa, koska Vimin tarkoituksella nopeusohjattu käyttöliittymä on. Esimerkiksi kohdistimen liikettä voidaan hallita H, J, K, ja L avaimet normaalitila. Tämä tarkoittaa sitä, että käyttäjän käsien ei tarvitse poistua "kotiriviltä" -asennosta, mikä parantaa tehokkuutta, mutta se tulee lisäkustannusten lisäyskustannukseksi, koska tilan vaihtoa tarvitaan liikkeen ja tekstin muokkaamisen välillä. Emacs-sovelluksissa (oletusasetuksilla) käyttäjä siirtää kohdistinta Ctrl-B- tai Ctrl-F-pikapainikkeilla, mikä saattaa hidastaa aloittelijan käyttäjää, koska kahta näppäintä on painettava. Tuottavuuden ja tehokkuuden parannukset Emacsissa riippuvat editointiympäristön konfiguroinnista kuin itse editorista.
Vim on kevyempi kuin Emacs ja käyttää vähemmän muistia. Vimin puolustajat arvostelevat Emacsin resurssien kulutusta kielellä-poskessa -ehdotuksella, jonka mukaan Emacs tarkoittaa "kahdeksankymmentä megatavua ja jatkuvasti vaihtamista".
Gnuclientilla voidaan kuitenkin ajaa yksi pysyvä Emacs-prosessi, joka voi tukea useita asiakkaita samanaikaisesti. Tämä nopeuttaa käynnistysaikaa ja vähentää muistin kokonaiskäyttöä ja sulkee Emacsin ja Vimin välisen aukon.
Vaikka sekä Vim että Emacs tukevat laajennuksia, jotka parantavat niiden toiminnallisuutta, Emacs tukee paljon enemmän muokkausympäristön mukauttamista. Tämä on väitetysti emacsien tärkein ominaisuus ja on vastuussa suuresta osasta emacien omistautunutta seurantaa.
Emacs voidaan laajentaa elisp, kun taas Vim on oma sisäinen skriptikieli ja tukee muiden ohjelmointikielten käyttöä plugin kehittämiseen.
Emacs-tiedostoja voidaan laajentaa lennossa määrittelemällä sisäänrakennetut elisp-toiminnot uudelleen kirjoittamalla uusi määritelmä Emacs-tiedostoihin tai lataamalla elisp-tiedostot. Aiheeseen liittyvien muutosryhmien nimi on "moodit", ja ne voidaan helposti määrittää käytettäväksi automaattisesti tietyntyyppisissä tiedostoissa (puskureissa). Joten on helppo määritellä tiloja eri ohjelmointikieleille tai -kehyksille, kuten "lisp mode" tai "Ruby on Rails mode" tai "PHP mode". Nämä tilat voivat suoraan muokata jopa Emacs-järjestelmän ydinkäyttäytymistä, muotoilla tai värittää teksti automaattisesti ja lisätä vakiomallipohjaa tai "kattilalevyn" tekstiä, kuten toimintoilmoitukset ja sulkemiset. Joten ohjelmoijien mielestä Emacs on paljon mukautettavissa heidän erityisvaatimuksiinsa kuin Vim. Jotkut ohjelmoijat saattavat kuitenkin löytää Vimin viime kädessä paremmin sopivaksi ohjelmointiympäristöönsä, koska se on räätälöitävissä ja täysin modaalinen.
Vimiä voidaan myös laajentaa lennossa komennotilaa käyttämällä. Komentotila mahdollistaa asetusten määrittämisen, toimintojen määrittämisen ja makrojen tekemisen. Itse asiassa Vimin asetustiedostot ovat vain komentoja, jotka voidaan syöttää komento-tilan kautta.
Sekä Vimillä että Emacsilla on graafiset käyttöliittymät. Lähes kaikki kummankin editoijan graafisen käyttöliittymän valikkokohteet ovat yksinkertaisesti tapoja käsitellä pikakomentoa tai nopeaa määritystä. Toimittajien graafiset käyttöliittymät eivät tarjoa käytännössä ylimääräisiä toimintoja kuin CLI: n (komentoriviliitäntä) käytettävissä olevat toiminnot
Emacs käyttää graafista käyttöliittymäänsä XDisplay tai gtk2. Vim voi käyttää gtk2: n lisäksi myös monia muita GUI-kirjastoja, kuten gtk, gnome, gnome2, motif, athena ja neXtaw.