Emacs a Vim jsou dva nejpoužívanější textové editory
Vim používá editační režimy - nejčastěji příkazový režim a režim vložení. Vim si klade za cíl minimalizovat počet stisků kláves, které musí uživatel stisknout, protože vi, na nichž je Vim založen, bylo navrženo pro použití přes pomalé terminály.
Emacs používá modifikační klávesy k umožnění zkratek, což často vyžaduje stisknutí několika kláves současně pro jednu funkci. Tento aspekt Emacsu je často kritizován.
Emacs se snáze učí, protože má přirozenější rozhraní (pro uživatele, kteří jsou obeznámeni s textovými editory založenými na GUI). Vzhledem k tomu, že Vim má různé režimy úprav, je pro začátečníky obtížnější se učit.
Nadšenci Vim tvrdí, že jakmile se uživatel seznámí s editovacími režimy a příkazy Vimu, umožňuje mnohem vyšší produktivitu a efektivitu. Editace souborů je obvykle rychleji u Vim než u Emacs kvůli záměrně Vimově řízenému rozhraní. Například pohyb kurzoru lze ovládat pomocí H, J, K, a L klíče v normální mód. To znamená, že ruce uživatele nemusejí opustit pozici „domácí řady“, což zvyšuje účinnost, ale přichází za cenu přidání režie, protože přepínání režimů je vyžadováno pro výběr mezi pohybem a úpravou textu. V Emacsu (s výchozí konfigurací) uživatel pohybuje kurzorem pomocí klávesových zkratek Ctrl-B nebo Ctrl-F, což může začínajícího uživatele zpomalit, protože je třeba stisknout dvě klávesy. Zlepšení produktivity a efektivity v Emacsu závisí spíše na konfiguraci editačního prostředí než na samotném editoru.
Vim je lehčí než Emacs a používá méně paměti. Vim obhájci kritizují spotřebu zdrojů Emacsu návrhem na jazyk v tváři, že Emacs je zkratka pro „osmdesát megabajtů a neustálé výměny“..
S gnuclientem však lze spustit jeden trvalý proces Emacs, který může podporovat několik klientů současně. To urychluje čas spuštění a snižuje celkové využití paměti, čímž se zmenšuje mezera mezi Emacsem a Vimem.
Zatímco moduly Vim i Emacs podporují jejich funkčnost, Emacs podporuje mnohem více přizpůsobení prostředí editoru. Toto je pravděpodobně nejdůležitější rys emacs a je zodpovědný za hodně z oddaných emacs 'následoval.
Emacs lze rozšířit v elisp, zatímco Vim má svůj vlastní interní skriptovací jazyk a podporuje použití jiných programovacích jazyků pro vývoj pluginů.
Emacs lze za běhu rozšířit předefinováním vestavěných funkcí elisp, buď zadáním nové definice do Emacsu, nebo načtením souborů elisp. Skupiny souvisejících změn se nazývají „režimy“ a lze je snadno nakonfigurovat tak, aby se automaticky použily pro konkrétní typy souborů (vyrovnávací paměti). Je tedy snadné definovat režimy pro různé programovací jazyky nebo rámce, například „lisp režim“ nebo „režim Ruby on Rails“ nebo „režim PHP“. Tyto režimy mohou přímo modifikovat i základní chování Emacsu, automaticky formátovat nebo vybarvovat text a přidávat standardní šablonu nebo text „kotlové desky“, jako jsou deklarace funkcí a uzávěry. Programátoři tedy považují Emacs za mnohem přizpůsobitelnější svým konkrétním požadavkům než Vim. Přesto někteří programátoři mohou najít Vim, aby se nakonec lépe přizpůsobil svému programovacímu prostředí díky stejně přizpůsobitelnému a plně modálnímu provozu.
Vim lze také rozšířit za chodu pomocí příkazového režimu. Příkazový režim umožňuje nastavit možnosti konfigurace, definovat funkce a provádět makra. Ve skutečnosti jsou konfigurační soubory pro Vim pouhými příkazy, které lze zadat prostřednictvím příkazového režimu.
Vim i Emacs mají grafické uživatelské rozhraní. Prakticky všechny položky nabídky v grafickém rozhraní pro oba editory jsou jednoduše způsoby, jak zpracovat příkaz zástupce nebo rychlou konfiguraci. GUI pro editory neposkytují prakticky žádné další funkce nad rámec funkcí dostupných v rozhraní CLI (rozhraní příkazového řádku)
Emacs používá pro své GUI XDisplay nebo gtk2. Vim může kromě gtk2 použít mnoho dalších GUI knihoven, jako je gtk, gnome, gnome2, motiv, athena a neXtaw..