Vim ve Emacs'in artıları ve eksileri nelerdir?


372

Bu editörleri nasıl karşılaştırırsınız? Her birinin avantajları ve dezavantajları nelerdir?

[ not ] Bu, "birinden nefret edip bir başkasını sevenler" veya her ikisini de kullanmayanlar tarafından cevaplanmak değildir.


1
M-! emacs RETBu "google" için google araması gibi
Seamus

11
SO soru Çift: stackoverflow.com/questions/1430164/... ubuntu ait askubuntu.com/questions/804/... ve programcılar programmers.stackexchange.com/questions/1271/... Bunu burada çoğalmasını seviyorum.
Trey Jackson,

27
Hiç kimsenin XKCD 378'den bahsetmediğine şaşırdım .
tedder42

9
Bu soruların, gerçek WYGIWYG editörlerinden Ed ile karşılaştırmak istediğini asla rahatsız etmediğine dikkat edin!
Mark K Cowan

4
@ tedder42 Sonra siz de devlet olabilir "Mel" ...
Tobias Kienzler

Yanıtlar:


420

İkisini de kullanıyorum, bir tane seçmek zorunda olsam da hangisini seçeceğimi biliyorum. Yine de, birkaç konuda objektif bir karşılaştırma yapmaya çalışacağım.

  • Her yerde mevcut mu? Unix sistemleriyle çalışan profesyonel bir sistem yöneticisi veya gömülü aygıtlarda (yönlendiriciler, Busybox'lı akıllı telefonlar,…) güçlü bir kullanıcıysanız, vi (Vim değil) bilmeniz gerekir, çünkü tüm Unix sistemlerinde ve çoğu Unix benzeri sistemler (masaüstü, sunucu veya gömülü) Sıradan bir kullanıcı için bu argüman önemli değildir: Her masaüstü / sunucu işletim sistemi için Emacs kolayca kullanılabilir ve uzaktan düzenlemeyi desteklediği için, yine de masaüstü makinenizde olması yeterlidir.

  • Şişirilmiş? Emacs bir keresinde “Sekiz Megabayt ve Sürekli Değişim” için mizahi durdu. Şu anda, makinemde, Google Chrome'un Emacs'ın 100 açık dosya için yaptığı kadar sekme başına RAM ihtiyacı var ve ben de Firefox'tan bahsetmiyorum. 21. yüzyılda, Emacs şişmesi sadece bir efsanedir.

    Özellik şişirme de bir sorun değil. Kullanmazsan, orada olduğunu bilmek zorunda değilsin. Emacs özellikleri, kullanmadığınızda ve belgeler çok iyi organize edilmediğinde uzak durun.

  • Başlangıç ​​zamanı : Vi (m) taraftarları Emacs'in başlangıç ​​zamanından şikayetçi. Evet, Emacs'ın başlatılması yavaştır ama bu önemli bir şey değil: Emacs'ı seans başına bir kere başlatıyorsunuz, sonra çalışan sürecine bağlanın emacsclient. Bu yüzden Emacs'in yavaş başlangıcı çoğunlukla bir efsanedir.

    Uzak bir makineye giriş yaptığınız ve orada bir dosyayı düzenlemek istediğinizde bir istisna vardır. Uzak bir Emacs başlatmak (genellikle) uzak bir Vim başlatmaktan daha yavaştır. Bazı durumlarda Ekranın içinde bir Emac'ı çalıştırabilirsiniz. Uzak dosyaları Emacs içinden de düzenleyebilirsiniz, ancak bir terminalde bir ssh oturumundaysanız akışı keser. (XEmacs 21 veya GNU Emacs 23'ten beri, bir terminal içindeki çalışan X örneğinden bir Emacs penceresi açabilirsiniz.)

    Tabloları çevirerek Vim'in Emacs ( vim -u /dev/nullvs. emacs -q) 'a kıyasla daha uzun sürede yüklendiğini gözlemledim . Kuşkusuz bu garip bir platformdaydı (Cygwin).

  • İlk öğrenme eğrisi: Bu kişiden kişiye değişir. Michael Mrozek'in grafiği beni kıkırdattı. Cidden, Vim'in öğrenme eğrisinin dik, diğer herhangi bir editörden daha dik başladığına katılıyorum, ancak bu, gvim kullanılarak azaltılabilir.

    Birkaç Emac efsanesini ortadan kaldırdığımdan beri, bir efsaneyi açığa çıkarmama izin verin: modal editör kullanımı zor veya acı verici değildir. Biraz alışkanlık alır, ancak bir süre sonra çok doğal hissettirir. Vi (m) 'yi yeniden tasarlayacak olsam, kesinlikle modları tutardım.

  • Asimptotik öğrenme eğrisi: Hem Vim hem de Emacs'in birçok özelliği vardır ve yıllarca kullandıktan sonra yenilerini keşfetmeye devam edersiniz.

  • Verimlilik : Bu son derece zor bir konudur. Vi (m) 'nin savunucuları, evden ayrılmadan hemen hemen her şeyi yapabileceğinizi ve en çok ihtiyaç duyduğunuzda sizi daha verimli hale getirdiğini savunuyorlar. Emac’ın savunucuları, Emac’ların sıklıkla kullanılmayan çok fazla komuta sahip olduklarını, yani önemli bir bağlanma emri vermediğini, ancak ihtiyaç duyduğunuzda uygun olduklarını belirtir ( zorunlu xkcd referansı ).
    Benim kişisel görüşüm, Emacs'ın bir yazma engeliniz olmadıkça nihayetinde kazandığı yönünde (ve o zaman bile, Emacs'ı sadece Ctrl+ harfleri gibi kombinasyonlar değil, sadece anahtar diziler gerektirecek şekilde yapılandırabilirsiniz ). Giriş satırındaki tuşlar güzel, ancak çoğu zaman kazanma şansınız da yok çünkü modları değiştirmek zorundasınız. Ben Vim yapabileceğim bir şey var sanmıyorum anlamlı Emac'lardan daha verimli, oysa görüşme gerçek.

  • Özelleştirilebilirlik : Her iki editör de programlanabilir ve her ikisi için de geniş bir paket paketi mevcut. Ancak, Vim bir makro dili olan bir editördür; Emacs Lisp'te bazı geçici ilkellerle yazılmış bir editördür. Emacs, yazarların henüz düşünmediği bir şeyi yapmaya çalıştığınızda olağanüstü kazanıyor. Bu her gün olmaz, ancak yıllar geçtikçe birikir.

  • Bir editörden daha fazlası : Vim bir editördür. Emacs sadece bir editör değil: aynı zamanda bir IDE, bir dosya yöneticisi, bir terminal emülatörü, bir web tarayıcısı, bir posta istemcisi, bir haber istemcisi, ... Bunun iyi bir şey mi yoksa kötü bir şey mi olduğu tartışmalı. Ancak Emacs'ı yalnızca bir editör olarak kullanabilirsiniz (yukarıdaki “özellik bloğu” na bakın).

  • Bir IDE olarak : Hem Vim hem de Emacs birçok programlama dilini ve diğer metin formatlarını destekler. Sözdizimsel renklendirme ve otomatik girinti gibi temel özelliklerin ötesinde, her ikisi de kod ve dokümantasyon çapraz referans aramaları, yardımcı yerleştirmeler ve yeniden düzenleme, entegre sürüm kontrolü ve bir derleme başlatma ve ilk hataya atlama gibi gelişmiş IDE özelliklerine sahiptir.

    Emacs'in Vim'den daha sade olduğu bir alan, asenkron alt işlemlerle etkileşimdir . Bu, uzun bir derlemeye başladığınızda ve derleyici çalkalanırken aynı editör örneğinde başka bir şey yapmak istediğinizde. Veya Read-eval-print döngüsüyle etkileşime geçmek istediğinizde - Emacs bu konuda gerçekten parlıyor, Vim'in sunabileceği sakar kesmeler var. Bununla birlikte, yeni bir çatal çatal olan Neovim , bunu düzeltti ve borsada uygulanmayan diğer çeşitli hata düzeltmelerini uyguladı.


34
"Bir editörden daha fazlası" konusuna katılıyorum. Vim'de, onu bir dosya yöneticisine veya IDE'ye (vim-lateks gibi) dönüştürenler de dahil olmak üzere birçok eklenti bulunur.
rozcietrzewiacz

7
Bu beni küçük hissettirdi ...
gnometorule

10
@rozcietrzewiacz: Evet, fakat Vim'de internete göz atabilir misin? E-posta okumak? RSS yayınınızı kontrol edin? Emacs'ın daha sade bir şekilde daha güçlü olduğunu inkar edemezsiniz, ancak bu gücün faydası aradığınız şeye bağlıdır.
musicfreak

3
@Bananguin Emacs bir REPL ile etkileşimi içeren her şeyde daha iyidir . Örneğin Genel Prova çok hoş (tabii ki çok dar bir uygulama alanı). Emacs, daha önce kimsenin düşünmediği şeyleri yapmakta iyidir: Emacs Lisp, Vim'in makro diline göre çok daha hoş. Emacs kaynak kodunu girme konusunda daha iyi bir desteğe sahip olma eğilimindedir, ancak bunun kütüphanelerin eksikliği kadar bir Vim hatası olduğunu düşünmüyorum (Vim desteği sözdizimi vurgulamasıyla sınırlı olma eğilimindedir).
Gilles,

5
@ MichaelHampton O zaman genç olmalısınız. 1985 yılında Sekiz Megabayt idi . Şu ana kadar Sekiz bin Megabayt olması gerektiğini düşünüyorum. Ancak, Emacs'in hafıza kullanımını bir tarayıcı sekmesinden az olmadığından kimse fark etmiyor.
Gilles

267

Her birinin ana yararı olduğunu düşündüğüm şeyi göndereceğim:


Emacs, dosya sisteminde gezinmek veya sürüm kontrolü ile uğraşmak, örneğin RSS yayınlarını okumak gibi hiçbir şekilde metin editörü ile ilgili olmayan uzantılar gibi, yalnızca belirli bir şekilde metin düzenleyiciyle ilgili görevleri yapmanıza izin verecek çok daha fazla uzantıya sahiptir. Sadece bir metin editörü yerine bir ortam istiyorsanız, Emacs Vim'den daha iyi olacak. Emacs'ın bazılarının inandığına rağmen öğrenmenin daha kolay olduğunu düşünüyorum:

Editör öğrenme eğrisi komik

Özellikle, bir acemi Emacs kullanıcısının acemi bir Vim kullanıcısından daha hızlı olacağını düşünüyorum


Öte yandan, Vim inkar edilemez bir şekilde daha hızlı. Bu argümanın temel bir parçası gibi görünüyor, ama bence hiçbir yarışma yok; Kendimi akıcı bir Emacs kullanıcısı olarak görüyorum ve eşit derecede Vim bilgisine sahip olduğumu bildiğim çiftler için uygun değilim. Sorun şu ki, Vim'in bu kadar hızlı olması için yeterli ustalığa sahip insanların sayısı inanılmaz derecede az (Vim'i kullanan düzenli olarak konuştuğum 30 kişiden 1'inde bence çok iyi bir durum). Olası hız kazancı ile elde ettiğiniz gerçek hız kazancı arasında büyük bir boşluk var ; Emacs kullanıcıları neredeyse Vim kullanıcılarının% 99'u kadar hızlı olacak ve (Emacs bölümünde dediğim gibi) Emacs kullanıcıları başlangıçta muhtemelen Vim kullanıcılarına göre daha hızlı olacaklar.


8
umm ... biliyorum vim'in birden fazla sürüm kontrol eklentisi var. ve bu eklentilerden biri tüm popüler sistemleri desteklemektedir .... eğer emacs daha varsa ... aynı şeyi yapmak için kaç tanesine ihtiyacınız var?
xenoterracide

13
@xeno Vim'in ne tür eklentileri olduğunu bilmiyorum, belki VCS kötü bir örnekti, ancak emacs'ın vim'den çok daha fazla eklentiye sahip olduğundan eminim, çünkü vim "her şeyi yapan bir program" felsefesine abone değil
Michael Mrozek

4
Biri lütfen yukarıda verilen emacs grafiğinin ne anlama geldiğini açıklar mı? Nasıl yorumlanır?
Andrew-Dufresne

27
Bu bir "tavşan deliğinden aşağı" şakası ... Çünkü emacs öğrendiğinde, sonunda emaclar da yaratmaya başlarsın. (Emacs gerçekten çok büyük bir Lisp tercümanıyla yazılmış makro / rutin düzenleme koleksiyonudur.)
ocodo

15
Hızınıza oranla +1 deneyiminiz iyi, ama belki% 99 biraz aşırı. Vim "bu" ustalaşması zor değil, sadece birkaç yıl alır;)
Johan

81

Bir yoktur vimevcut her unix sistemde (nerdeyse), ancak bu konuda başka düzenleyici diyemeyiz. Kendinizi tanımak ve tanımak için # 1 nedeni budur vi(lütfen 'vi' değil 'vim' e bakınız). Varsayılan kurulumda Emac'lerin mevcut olduğunu hiç görmedim.

Emacs kullanmayın demiyorum ya da Vim'i kullanmanın tek nedeni bu, ama sizin olmayan Unix sistemlerini kullanmak istediğinizde ... vievrensel dilin bir parçası.


1
Ben oldukça vimkullanıcıyım, fakat çoğunlukla viEND anahtarı nedeniyle kullanmak zor geliyor (vim destekliyor, ancak vi
kullanmıyor

25
@phunehehe kullanmayı nanodenersem, dosyamda bir sürü ijkloOah's var. Bunları navigasyon için kullanamayacağımı fark edene kadar. Gezinmek için ok tuşlarını kullanmıyorum.
xenoterracide

5
Bu, tehlikeli sunuculara yavaş sunuculara bağlanmak için iki katına çıkar: garantili oldukları bir editör (Unix özelliklerinde, sanırım?) Vi'dir ve vi'nin komut modu, daha az tuşa basarak dosyaları düzenlemeyi çok daha kolaylaştırır. Her tuşa basıldığında ekranınızda görünmesi birkaç saniye sürer. Tabii ki, adım # 1 genellikle kuruluyor vim:)
Gaurav

12
@ phunehehe esc kullanmıyorum. Ctrl + kullanıyorum [aynı şeyi yapar;)
xenoterracide 29:10

8
Gaurav adlı kullanıcının yorumu için +1. Vi, yavaş bir cep telefonundaki berbat bir 3G bağlantısı üzerinden config dosyalarının acil olarak düzenlenmesi için mükemmel çalışır.
LawrenceC

23

Bence ikisi de harika. Sanırım, birinin hayal edebileceği herhangi bir şeyi yapabileceğini düşünüyorum, ve ikisi de çok özelleştirilebilir, onları özelleştirmeyi tamamladığınızda, ikisi de tam olarak ne olmasını istediğinizi, daha fazlasını ya da daha azını değil.

Emacs, kullanıcı arayüzleri için ISO / IEC kullanılabilirlik ve tutarlılık standartlarına biraz daha yakın olduğumda (yine de uyuşmasa da) bana dikkat çekiyor ve bu nedenle bu içgüdüyle ilgili “içgüdüleriniz” kadar hile yapmıyorsunuz. Başka programlarla çalışarak geliştirdiğiniz içgüdülerin ömrü size karşı işe yaramaz.

Vim, tamamen farklı bir modeldir ve birçok yönden, Cntrl / Alt dizilerine çok daha az dayandığı kadar, kendi başına da üstündür. Daha hızlı. Ancak vim neredeyse benzersizdir ve çok sıradışı bir eşlik eden yazılım yüklemezseniz (örneğin, Vimperator, Jumanji / Zathura, vb.), Vim ile çalışarak geliştirdiğiniz içgüdüler başka programlara geçemez ve bunun tersi de geçerlidir. Bu dedi, kendimi vim yerleşti. Her ikisinde de ustalaşmak zor olduğundan, daha iyi veya daha kötüsü için er ya da geç razı olmak zorundasınız.


1
"Vim ile çalışarak geliştirdiğiniz içgüdüler diğer programlara geçmeyecek" satırı hakkında bir yorum: "set-mode vi" satırı bir ~ / .inputrc dosyasına (onu destekleyen Linux sisteminde) eklenebilir . Bu, bash kabuğunun kendisi gibi stdin için readline kullanan programlara metin girmek için vi tarzı sözdizimi sağlar. Birisinin vim kullanarak geliştirdiği düzenleme içgüdülerine adil bir miktarda daha geniş uygulanabilirlik (bazen şaşırtıcı şekilde) olabilir.
Christian Abbott

Neyse ki, bu problemi olan birçok insan var ve onlar daha fazla merak uyandırmak için birçok program için uzantılar oluşturdular .
DarkWiiPlayer

21

İkisini de düzenli olarak kullanıyorum. Emacs'ı "canlı yayın" editörü olarak görüyorum, ancak hızlı, tek seferlik işler için Vim kullanıyorum. Yüzeysel olarak, Emacs, Vim'den çok daha fazla şişirilmiş ve bu yüzden Vim kadar "Ateşlenmek" için pek uygun değil, aynı zamanda kullanıcı arabiriminin felsefelerinin birinden diğerine bu paradigmayı desteklediğini de görüyorum. Emacs sizi içeride tutmak, işleri güzel ve konforlu hale getirmek için çok daha fazla inşa edilmiştir, bu nedenle ayrılmak zorunda kalmazsınız;

Birçok kişi, buxy bitlerine olan yoğun bağlılığından dolayı Emacs'tan kaçıyor , ama bu benim için çok saçma bir sebep. Emacs'in Vim üzerinde sahip olduğu gerçek güç özelleştirilebilirlik ve Viper vb. Gücü ile bu gerçekten bir sorun değil. Kesinlikle Vim-Script kendi kişiselleştirme seviyesini sağlar ve eğer en sevdiğiniz programlama diline uygun bir sözdizimi vurgusu sağlanmamışsa, kesinlikle bir tane hazırlayabilirsiniz, ancak Emacs sonuçta kendi kendini barındıran bir lisp-makinesidir. Sonunda, onunla çok daha fazla kibirli yapabilirsiniz. Sadece Vim'de gnus veya org-mode gibi araçlar yoktur, bunlardan bir kaçı vardır. Özetle, Emacs sadece bir editör değil, pratik olarak bir lanet olası işletim sistemi.

Metni değiştirmek için tam olarak eşit olduklarını söyleyebilirim.


30
“Emacs, sadece bir boka değer bir metin editörüne sahip olsaydı mükemmel bir işletim sistemi yaratabilirdi.” - Bu alıntı hatırlatıldı.
amfetamachine

@ amphetamachine Alıntı alamadım. Emacs-the-metin-editörünü denemek anlamına mı geliyor?
tshepang

Bunun anlamı, genelde yanak dilini daha fazla ısırmakla duyuyorum.
Cody Anketi

Editörlerin kendilerine gelince, vim ile metin düzenlemeyi daha kolay buluyorum, ancak emac'lara özelleştirilebilirlik vermem gerekiyor. Vimscript bir lisp'a dayanamıyor.
Cody Anketi

19

Ben emacs ve XEmacs kullanarak birkaç yıl geçirdim ve sonra vim için taşındı, ben 0.02 $ değerinde koyacağım. Adil olmak gerekirse, 1990-1992 yıllarında vi'yi biraz kullanmıştım, bu yüzden kullanıcı arayüzünü tanıdım.

Emacs

  • Emacs, bir editör yazmak için henüz kullanılan bir lisp sistemi olarak tanımlandı ve bunda bir doğruluk oranı var. Çevreyi anlamak için zaman ayırmaya özen gösterirseniz elisp'te istediğiniz her şeyi uygulayabilirsiniz. Bunu o kadar iyi tanıdığımı söyleyemem, ama bazen bir şeyler yapardım. Emac'ler ve Xemac'ler bu düzeyde tamamen uyumlu değildir, bu nedenle üçüncü taraf komut dosyaları bir başkasında çalıştırılabilir ancak bir başkası tarafından çalıştırılamaz.

  • RMS ve diğer bazı önde gelen Emacs korsanlarının, Bill Joy, Bram Moolenaar ve çeşitli diğer aydınlatma armatürlerinin hala içinde bulunduğu OOS ile ilgili sorunlar nedeniyle programlamadan emekli olmak zorunda oldukları görülmüştür. Emacs pembemsi parmaklarınızda zor.

  • Emacs, vi'den çok daha fazla katolik bir sistemdir ve yazılım zarflamanın kanonik bir örneği olarak görülmektedir . Netscape ile birlikte, bu, jwz'in bu yasayı kanıtlamaya katkısıdır.

Bir kez xemacs ile yaptığım benzersiz bir şey, bir makinede çalışmasını sağlamak ve aynı koşu örneğinde aynı tampona karşı farklı bir odada bir xterminalde (aslında eski bir yeniden üretilmiş Sun 3/60) bir x seansı açmaktı.

Artıları: Genişletilebilir, insanoğlunun bildiği herhangi bir editörden daha güçlü, hemen hemen her büyük özgür yazılım programlama aracıyla olgun entegrasyon.

Eksileri: Şüpheli ergonomi, elisp öğrenmesi kolay değil.

gayret

Feragatname - Yaklaşık 10 yıl önce vim'e emacs kullanmaya başladım ve Windows ve Unix / Linux tabanlı sistemlerde alışılmış şekilde vim kullanıyorum.

  • Vi ve soyundan gelenler, düzenleme görevlerini otomatikleştirmek için çok iyi bir klavye makro özelliğine sahiptir. Vim'deki komut dosyası özelliği elisp kadar karmaşık değildir, ancak Python, Tcl, Perl ve belki de bazı diğer sistemler için destek oluşturabilirsiniz. Vim için sadece ara sıra scriptler yazdım (.vimrc dosyalarının dışında).

  • Vim'in emacs'tan daha küçük bir alanı var, ancak bu bugünlerde pek önemli değil.

  • Vim'in dokümantasyonu ve çevrimiçi yardımı oldukça iyi. Emacs'in çevrimiçi dokümantasyonu oldukça iyi, ama vim kadar kapsamlı olduğunu sanmıyorum.

  • Vim, vi'nin ilginç modal kullanıcı arayüzünü devralır, ancak ekleme modunda gezinebileceğiniz gibi, artık modsuz bir düzenleyici gibi çok fazla davranma yeteneğine sahiptir. Windows'ta bir windows uygulamasına oldukça benzer şekilde davranabilir.

Artıları: İyi klavye makro özelliği, pasif olarak iyi genişletilebilirlik ve komut dosyası, ancak emac'ler kadar iyi değil. Tüm unix veya genel amaçlı linux dağıtımları değilse, Vim veya vi türetilmiş editörler çoğunlukla standart olarak bulunur. Muhtemelen daha iyi ergonomi.

Eksileri: Modal kullanıcı arayüzü, Windows UI'larına kullanılan insanlara garip geliyor. Bugünlerde vim ile bir sorun daha az.


Cevabını okumaktan zevk aldım ama karar verme faktörünü özlüyorum. Emaclardan vim'e ne çevirdin?
Erik B

Sadece organikti - ayrıca vim'in klavye makroları gerçekten iyi çalışıyor.
ConcOedOfTunbridgeWells

1
Kahretsin, genç bir programcı olarak ergonomi argümanı çok çekici. Bu sadece Emacs yerine VI ve VIm öğrenme ve öğrenme tercihlerimi yerine getirmiş olabilir.
Didier A.,

15

Normalde Vim kullanırım ama ikisi de harika editörler.

Vi'yi kullanmayı öğrenmek çok kötüydü, ama üstesinden geldim ve hoşuma gitti. En sinir bozucu anlarım, büyük harf kilidi tuşu açıkken oldu. GVim ile deneyebilirsiniz, ancak vi ve Emacs ile en büyük avantajlardan biri, ellerinizi klavyede tutarken düzgün şeyler yapabilme yeteneğidir ve gVim, farenizi kullanmaya devam edecektir. (Aynı anda roguelike oyun oynamayı öğrenmek, imleç hareket tuşları ile pratik yapmamı sağladı ama bazen belgelerde çapraz olarak hareket etmemi sağladı.)

Emacs muhtemelen daha ulaşılabilirdir. Bu modsuz ve kapaklar kilitleme tuşuna basarak kendinizi berbat etmeyeceksiniz. Editöre kumanda tuşunu kullanarak harfleri yazarak kontrol etme fikri, modern güç kullanıcıları için çok yabancı olmamalıdır, ancak yapılacak işlerin gerçek anahtarları tipik Windows / Mac OS X kullanıcısı için vahşi ve keyfi görünecektir. Yine, fareyi kullanmanıza izin veren sürümler, uzun vadede size birkaç iyilik yapar.

Her ikisi de etkili bir şekilde kullanmak için bir miktar uzmanlık gerektirir. Not Defteri'nin aksine, sadece oturup düzenleyemezsiniz.

Her ikisi de yapılandırılabilir, ancak aynı Lisp'deki para yazma uzantıları için editörün içinde yazdığı mektuplar daha yumuşak bir deneyim sağlar. (Normalde dağıtıldığı gibi Emacs gerçekten bir editör değildir. Bir editör de dahil olmak üzere önceden yazılmış bir yazılıma sahip olan, metin işleme için tasarlanmış bir Lisp ortamıdır. daha iyi bir editör. ")

Normalde Vim kullanıyorum çünkü yoğun bir eğitimden sonra daha kolay hissediyor. Bunun nedeni, çok sayıdaki komutun ana satırların yakınında bir parmak kullanarak ya da editörler için çok fazla uygulanan "yavru ördek sendromu" olan mod sistemindeki avantajlardan kaynaklanıyor olabilir: ona.

İkisini de yanlış kullanmazsınız.


9

Vi / vim kullanmamamın ana nedeni, model olması. Vi kullanmamın ana nedeni hemen hemen her yerde mevcut olmasıdır.


12
Vim kullanmamın ana nedeni, model olması. Daha yüksek öğrenme eğrisi, ancak alıştıktan sonra kullanımı çok daha kolay.
Kris Jenkins

1
Modal düzenlemeyi seviyorsanız, Emacs'ın
Charles Stewart

9

Yukarıdaki "vim modal" nin yorumunun yanlış olduğunu düşünüyorum. Vim'in komutları var. "11aNow şimdi tüm iyi adamlar zamanı." Yapabilir ve dosyanızda 11 aynı yeni metin satırını bulabilirsiniz. Bu bir komut, bir mod değil. Ama aslında Vim komutları ile Emacs komutları arasında çok temel bir fark var. Bunu tarif edebileceğimden tam olarak emin değilim, ancak Eric Fischer 10+ yıl önce bir TTY sürücüsüne Emacs tarzı çizgi düzenlemesini dahil etti ve bu konuda bir makale yayınladı:

http://www.usenix.org/event/usenix99/full_papers/fischer/fischer.pdf

Emacs'in stil çizgisi düzenlemesinin temelde vi-stilinden farklı olduğunu buldu.

Bu nedenle Emacs'ın, bir çok başka şeyin (bash, gnuplot, zsh, ksh bazılarının kafamın üstünden aklıma gelmeyeceği gibi) hepsinin Emacs tarzı çizgi düzenlemesini gerçekleştirmesi gibi bir avantajı var.

Her zaman kişisel olarak Vim kullandığımı not etmeliyim. Ben sadece çok nadiren Emacs kullanıcısıyım.


1
set -o viiçinde bashya zshda çalıştırmak için sert (veya bir koymak değil rcdosyası) Bence.
moon.musick

@ moon.musick - kesinlikle hayır, ben her zaman yaparım. Sadece gnuplot, Postgresql's psql, MySQL mysqlve bir sürü başka arayüz Emacs modunu varsayılan olarak aşağı yukarı yapıyor. Keşke Oracle sqlpluskomut satırı düzenlemesini yapabilseydi ... hayır, hayır. Binbaşı bir şirkete sormak çok fazla olurdu. Takip Edilecek Trendleri Var!
Bruce Ediger

Evet, çoğu zaman inputrckabuk takımları için bir şey yapar, ama sonra kendimi yarım saniye merak ederek neden jaşağı inmiyor, merak ediyorum , diyelim ki Mendeley Desktop, terminalden geçtikten sonra ve birkaç kez vim bağlama istendi. Maalesef her şeyi kapsayan ve tutarlı bir çevreye sahip olamaz.
moon.musick

2
@BruceEdiger Çok geliştiricileri şüphe mysql(1), psql(1), gnuplot(1), ayrıca python(1), perlconsole(1), lftp(1), smbclient(1)interaktif programlar ve aslında çok hat-düzenleme için keybinding endişe edildi. Bu yazılımların tümü sadece GNU Readline kullanır ve GNU Readline için varsayılan mod (şaşırtıcı olmayan bir şekilde) GNU Emacs benzeridir. set editing-mode vi sizin ~/.inputrcve işte - tüm bu araçların vi benzeri anahtarlıkları var.
Dmitry Alexandrov

9

Açıkça belirtilmediği için, biraz değiştirilmiş bir Emacs dağıtımından daha iyi bir programlama ortamı (bir kutudaki Lisp, SLIME vb.) Olmadığını ekleyeceğim. Programlama ihtiyaçlarımın tamamı (% 99) Vim'in içinden halledildi, ancak yazdığım tüm Lisp kütüphaneleri ve rutinleri için, verimli bir şey elde etmek için Emac'ları ateşlemem gerekiyor.


8
Bazen bunun Lisp hakkında mı yoksa Emacs hakkında mı olduğunu ve bunun iyi ya da kötü olup olmadığını merak ediyorum ...
Kevin Cantu

8

Vim / gVim kullanıyorum.

Emacs kullanıyordum, ama gVim'i daha yavaş makinelerde daha hızlı çalıştığını gördüm, ayrıca POSIX gereksinimi nedeniyle vi hemen hemen her yerde mevcut.

Vim veya gVim kullanırken, fareyi çok kullanıyorum, bunun için destek harika.

Emacs kullanmaya başladım, çünkü acemi bir kullanıcı için daha kolaydı. Nano kullanımının bir nedenden ötürü hataya açık olduğunu buldum ve bir noktada vi kullanarak daha rahat olduğumu fark ettim.

Şu anda, bu bir karışım. Ben de Eclipse kullanıyorum ve oldukça sık gözüküyorum. Ancak Vim, hala en sevdiğim ve en çok kullanılan editörüm.


7

Hem gVim hem de Emacs'ı üretkenlik için yeterince kullanıyorum, ancak ikisinde de uzman değilim. Kesin olarak söyleyebileceğim bir şey, Windows 7 dizüstü bilgisayarımda (işte kullanmam gereken) Vim ve gVim'in daha hızlı çalışmasıdır. Windows kutusundaki Emacs, klavye arabelleğinde biriken her şeyi acele etmeden tükürmeden önce bile, klavye girişini kabul etmeyi sürdürürken bile dakikalar boyunca "duraklatma" gibi garip bir alışkanlığa sahip. Bu Mac OS veya Linux'ta olmaz. Yine de kendimi Vim veya gVim'i çoğu zaman tüm platformlarda kullanırken buluyorum, böylece hangi editörü kullandığımı ve ayarladığımı düşünmek zorunda kalmıyorum. Bununla birlikte, tamamen * nix bir ortamda, muhtemelen Emacs ile kalacağım çünkü modellik düzenlemesini biraz daha doğal buluyorum.

Alt satır: Bence her iki editör de her türlü metin düzenleme gereksinimlerini karşılayacak kadar güçlü. Seçim, pratik düşüncelere (platform uygulama özellikleri gibi) ve çalışma tarzına dayanmalıdır.


3

Emacs ve Vim arasındaki ana fark ergonomiktir. Bildiğiniz gibi karpal tünel sendromu, KTS var. CTS'niz varsa ve CTS'yi kışkırtırsanız, Emacs çok "tehlikelidir". Vim - hayır, bu farkı birçok yerde okuyabilirsiniz. Örneğin, Vim'de metni yalnızca bir parmağınızla düzenleyebilirsiniz. Emacs - yapamazsın :)


3
CTS'nin aslında klavye kullanımıyla ilgili olduğu kanıtlanmadı. Yüzeysel olarak makul olsa da, CTS'nin genetik olarak her şeyden daha çok neden olduğunu gösteren bağlantılar vardır. Bu nedenle, zaten CTS’niz olduğunda daha az yazmaya yardımcı olabilir, ancak bir editörün CTS’den diğerinden daha fazla neden olduğuna dair herhangi bir kanıt olduğunu sanmıyorum .
Konrad Rudolph

-2

Kullandığım vi/ nvi(NOT vimbasit ve mütevazi olduğu için).

vimbip seslerini o kadar çok sever ki, kapatılması çok açık ve net değildir. Ben zorunda fiziksel olarak en sonunda gömülü-ref bunu yapmak için nasıl bulmadan önce iç pc hoparlörü çıkarmak :)

set vb t_vb=

Ayrıca sözdizimi renklendirme kullanmıyorum, üzerimdeki gri siyahı en güzel olanı.

Ve belki de karışık-multi-key-preslenmiş emacsyolun hatırladığım tek üç tuş kombinasyonunun CTRL-ALT-DEL olduğunu anlamayacak kadar aptalım .


-2

"Vim ve Emacs'in artıları ve eksileri nelerdir?" - ha!

Çoğunlukla profesyonelleri başkalarına bırakacağım.

Her ikisinin de eksileri, her ikisinin de eski okul olmasıdır. Temel çizgi editörlerinden, süper hızlı montaj kodlu editörlerine (biri için VEDIT), şık GUI editörlerine, bazıları diğerlerinden daha iyi, muhtemelen 50 farklı editör kullandım. ForthStar adlı kendi özel editörümü bile yazdım ve bunu btrieve yaprakları ağacını düzenlemek için, güçlü arama için birden fazla indeksle, yeni düzenlediğim son yaprakları anında bulmak veya kod bileşenlerini veya yaprak ebeveynlerini hızlıca bulmak gibi uyarladım. veya çocuklar.

Sanırım hem vi hem de emacs kaslardan daha dindir. Onları oluşturan yaratıcı beyinler büyük ölçüde ilerledi ve yeni destek onları yeniden icat etme cesaretinden ve yeteneğinden yoksun.

Evet Emacs çok şey yapabilir, ancak lisp, yavaş ve güzel bir şekilde eski moda olan bir dildir.

Her ikisi de zor klavye düzenlerinde sıkıştı. Emacs, antik Meta'dan ziyade bir Alt anahtarının olduğunu kabul ederek kullanıcıya en azından biraz ayar yapabilir. WordStar gibi, hızlı yazma özelliği de dikkate alınmadığında CA CB'yi doğrudan CA B'den korumanın farkına varır. Her ikisinin de anahtar kombinasyonu ile ateşlenmesini sağlamak daha iyi. Evet, anahtar bağlarını değiştirebilirsiniz, ancak daha sonra ne karmaşaya sahipseniz.

Vi akıllıdır, ancak ne bulduklarını gösteren Notepad ++ 'ta olduğu gibi güçlü bir arama ve değiştirmeye sahip değildir, genişletmenizi ve seçici olarak sadece tek bir yenilikten bahsetmek için renkli olarak uygulamanızı sağlar.

Bu günlerde hemen hemen başka bir GUI ap, fare tekerleğini yakınlaştırmaya izin veriyor. Emacs GUI bunun işe yaramasını sağlamıyor. Kate'in sahip olduğu güzel Yunanlı nerede?

Yıllar boyunca en sevdiğim klavye düzeni Wordstar'ın imleç elmasıydı. En azından hemen öğrenmesi ve anlamlandırması kolaydı. En çok nefret ettiğim, karmaşıklığı artıran ve biraz emaklara dayanan görünen WordPerfect idi.

Bugünlerde dünyanın çoğu GUI'sine bakalım. Ve bunun gibi ya da değil metin editörleri kendi yaşlarında biraz sıkışmış.

Bence, emacs, vi, wordstar veya ne gibi anahtar düzenler arasında kolayca geçiş yapabileceği ve sunması gereken daha güçlü komutları kaybetmeden evrensel bir editöre sahip olmanın daha iyi olacağını düşünüyorum. Gerçek programcılar çeşitli düzenleme araçlarını kullanmak zorundadır. Neden bizi işleri yapmaya zorlamak yerine işimizi halletmek için ihtiyaçlarımızı karşılayan bir editöre sahip değilsiniz?


Soru hem artı hem de eksiler için sorulduğundan, bu soruya cevap vermiyor. Görebildiğim kadarıyla, sadece diğer editörlerin hem Vi hem de Emac’lardan daha iyi olduklarından bahseder.
Kusalananda

Herhangi bir cevap, bir soru için soruyu cevaplayana kadar sorun değildir ve eskisi gibi farklıdır. "İyi görünüyor".
peter

Q açıkça eksilerini sorar. Ve bazı profesyonellerden söz ediyorum.
Eliptik görünüm
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.