Emacs ve gayret üzerinde en çok kullanılan iki metin editörüyüm
Vim, düzenleme modlarını kullanır - çoğunlukla komut modu ve ekleme modu. Vim, kullanıcının basması gereken tuş vuruşlarının sayısını en aza indirmeyi amaçlamaktadır, çünkü Vim'in temel aldığı vi, yavaş terminaller üzerinde kullanılmak üzere tasarlanmıştır.
Emacs, genellikle tek bir işlev için aynı anda birden fazla tuşa basmayı içeren kısayolları etkinleştirmek için değiştirici tuşlar kullanır. Emacs'ın bu yönü sıklıkla eleştiriliyor.
Emacs daha kolay bir arayüze sahip olduğundan öğrenilmesi daha kolaydır (GUI tabanlı metin editörlerine aşina olan kullanıcılar için). Vim'in farklı düzenleme modları olduğundan, yeni başlayanlar öğrenmeyi biraz daha zor buluyor.
Vim meraklıları, bir kullanıcı Vim'in düzenleme modlarına ve komutlarına aşina olduğunda, çok daha fazla üretkenlik ve verimlilik sağladığını iddia eder. Vim'in hıza dayalı arayüzü nedeniyle Vim'de dosya düzenleme genellikle Emacs'a göre daha hızlıdır. Örneğin, imleç hareketi 'H, J, K, ve L tuşları normal mod. Bu, kullanıcının ellerinin verimliliği arttıran "ana sıra" konumunu terk etmesine gerek olmadığı anlamına gelir, ancak hareket ve metin düzenleme arasında seçim yapmak için mod değiştirme gerektiğinden ek yükün fiyatına gelir. Emacs'ta (varsayılan yapılandırmayla), kullanıcı imleci Ctrl-B veya Ctrl-F kısayollarıyla hareket ettirir, bu da iki tuşa basılması gerektiğinden acemi kullanıcıyı yavaşlatabilir. Emacs'ta verimlilik ve verimlilik iyileştirmeleri, düzenleyicinin kendisi yerine düzenleme ortamının yapılandırmasına bağlıdır.
Vim, Emacs'tan daha hafiftir ve daha az bellek kullanır. Vim savunucuları, Emacs'in "Seksen Megabayt Ve Sürekli Takas" anlamına gelen yanaktaki dil önerisiyle Emacs'ın kaynak tüketimini eleştiriyor.
Bununla birlikte, gnuclient ile, birkaç istemciyi aynı anda destekleyebilen tek bir kalıcı Emacs işlemi çalıştırılabilir. Bu, başlatma süresini hızlandırır ve toplam bellek kullanımını azaltır, Emacs ve Vim arasındaki boşluğu kapatır.
Hem Vim hem de Emacs işlevlerini geliştiren eklentileri desteklerken, Emacs editör ortamının çok daha fazla özelleştirilmesini destekler. Bu, emacs'ın tartışmasız en önemli özelliğidir ve emac'ların adanmışlarının çoğundan sorumludur..
Emac'lar elisp ile genişletilebilirken, Vim kendi dahili kodlama diline sahiptir ve eklenti geliştirme için diğer programlama dillerinin kullanımını destekler.
Emacs, yerleşik elisp işlevlerini yeniden tanımlayarak, yeni tanımı Emacs'a yazarak veya elisp dosyalarını yükleyerek anında genişletilebilir. İlgili değişiklik gruplarına "mod" denir ve belirli dosya türleri (arabellekler) için otomatik olarak kullanılmak üzere kolayca yapılandırılabilir. Bu nedenle, "lisp modu" veya "Ruby on Rails modu" veya "PHP modu" gibi farklı programlama dilleri veya çerçeveleri için modlar tanımlamak kolaydır. Bu modlar, Emacs'ın temel davranışlarını bile doğrudan değiştirebilir, metni otomatik olarak biçimlendirebilir veya renklendirebilir ve işlev bildirimleri ve kapanışları gibi standart şablon veya "ortak metin" metni ekleyebilir. Bu yüzden programcılar Emacs'ın Vim'den çok daha özel gereksinimleri için özelleştirilebilir olduğunu düşünüyorlar. Yine de, bazı programcılar eşit derecede özelleştirilebilir ve tamamen modsal çalışması nedeniyle Vim'in programlama ortamlarına daha uygun olduğunu görebilirler.
Vim komut modu kullanılarak anında genişletilebilir. Komut modu, yapılandırma seçeneklerinin ayarlanmasına, işlevlerin tanımlanmasına ve makroların oluşturulmasına izin verir. Aslında, Vim için yapılandırma dosyaları sadece komut modundan girilebilen komutlardır.
Hem Vim hem de Emacs grafik kullanıcı arayüzlerine sahiptir. Her iki düzenleyici için grafik arayüzdeki hemen hemen tüm menü öğeleri bir kısayol komutunu veya hızlı yapılandırmayı işlemenin yollarından biridir. Editörlerin GUI'leri CLI'de (komut satırı arayüzü) mevcut olanların ötesinde neredeyse hiçbir ek işlev sağlamaz
Emacs, GUI için XDisplay veya gtk2 kullanır. Vim, gtk2'ye ek olarak gtk, gnome, gnome2, motif, athena ve neXtaw gibi diğer birçok GUI kütüphanesini kullanabilir..