Farklı vim uygulamaları arasındaki fark nedir?


25

Emacs'ta birkaç farklı vim uygulamasının farkındayım. Kötü modu, engerek, vimpulse ve vim modu var. Diğerleri var mı Nasıl karşılaştırırlar?

evil-*MELPA'da, hiçbirinin% 100 özellik tamamlamadığını öne süren çok sayıda paket olduğunu unutmayın . Hangi vim özelliklerini sağlıyorlar ve hangi vim özelliklerini eksik?

(" Oldukça dolu bir Emacs uygulaması olan bir grup vi makro] " ile ilgilenmiyorum !)


1
Belki de "emülasyonlar" daha doğru ve daha az kafa karıştırıcı olacaktır çünkü listelenen modların amacı size Emac'lerin üzerine editörün tamamını uygulamamak yerine, istediğiniz davranışı vermektir.
wasamasa

Yanıtlar:


35

vi, vipVe viper(oluşturulma tarihi göre sıralanmıştır) yerleşik gel Emacs ile bu taklit VI hepsi. vim-modeVim'i taklit etmek için harcanan daha yeni ve bağımsız bir çaba , en kullanışlı Vim özelliklerini vermek vimpulseiçin bir dizi ekstra viper. evilyerine olarak oluşturuldu vim-mode.

evilen yeni proje ve aktif olarak geliştirilen tek projedir. Amacı Vim'in düzenleme modelini inançlı bir şekilde taklit etmek ve mümkün olan her yerde mevcut Emacs işlevselliğinden faydalanmak. Şahsen, bunun% 90'ı tamamlanmış olduğunu söyleyebilirim, çünkü birkaç newish komutunun (örneğin gn) eksik olması nedeniyle, ekranla ilgili bazı işlevlerin yeniden oluşturulması zorlaşır (dosyanın bitiminden sonra görünen ekranlar gibi) ve uygulama yapmaz. Bir Vimscript yorumlayıcısı veya Ex modunun temelleri dışındaki herhangi bir şey. Bununla birlikte, uzatma ve orijinale göre inceleme yapmak daha kolaydır, evil-*uzantılar, neredeyse tüm durumlarda Vim eklentilerine eşdeğer Emac'lardır ( evil-leaderörneğin, bir istisna olabilir, çünkü Emacs keymap desteğini göz önünde bulundurmak gerekli değildir, çünkü).

Noktalarda evilVim'i geçmeyi düşünürsek (bkz. :sVe onun görsel önizlemesi ya da kullanışlı bir yeni mod oluşturmak için ne kadar az çaba harcadığı ), tüm kalbimle Emacs için modal düzenleme yapmak isteyen herkese tavsiye ederim.


g/Vim'de newish bir emir olmaktan bahsettin . Daha önce hiç görmedim ve hiçbir belge bulamadım. Vim'de ne işe yarıyor?
ivan,

Üzgünüm, demek istedim gn. Arama sonuçlarını bir metin nesnesine dönüştürür. Ayrıca, şimdiye kadar uygulandı.
wasamasa

Ah, anlıyorum. Bunu Vim'de biraz kullandığım için uygulandığını duyduğuma sevindim.
ivan,

9

Yana evilbildiğim kadarıyla sadece aktif gelişmiş vim emülasyon modu, ben cevabım kötülük-özgü yapacağız. evilson derece kullanışlı ve vim benzeri bir deneyime çok yakın, ancak büyük olasılıkla (tasarım tarafından) uygulanmayacak bazı vim özellikleri ve bazıları eksik fakat sonunda eklenebilecek bazı vim özellikleri var. Büyük olasılıkla şeylerin bazı örnekler olmaz eklenecek:

  1. Vimscript tercümanı yok ve bildiğim kadarıyla bir tane uygulama planı yok.
  2. Rakamların arttırılması ve azaltılması ( C-ave C-x) eklenmeyecektir, çünkü C-xEmacs tuş takımı için çok önemlidir.
  3. Yerleşik bir lider anahtarı kavramı yoktur; bunun yerine, varsayılan \olarak bağlıdır evil-execute-in-emacs-state.
  4. C-uVarsayılan olarak yukarı kaydırma işlemine bağlı değildir, çünkü Emacs tuş bağlama işlemi için çok önemlidir (bununla birlikte yazmanıza rağmen evil-want-C-u-scroll).

Henüz uygulanmamış vim özelliklerinin bir listesini bulmak için (bu cevabı yazarken), aranacak en iyi yer sorun izleyicidir . Listedeki şeylerin rastgele örneklenmesi:

  1. İle bir dosya eklemek exuygulanmadı .
  2. Bazı hareket komutları vim gibi davranmaz .
  3. :makeile eşlenmediM-x compile .
  4. C-oiçinde insertvim'in yaptığı gibi mod oldukça davranmaz .
  5. Pencere arabelleklerini değiştir seçeneği uygulanmadı .

Açık sorun listesinde olmayan komutlar da dahil olmak üzere daha birçok şey var (özellikle karmaşık exkomutlar), ancak listeden görebileceğiniz gibi bunlar oldukça küçük ya da belirsiz vim özellikleri olma eğilimindedir (vim oldukça büyük bir hedeftir) % 100 özellik paritesi elde etmek).


emacs lisp kullandığından hiçbir şey imkansız değildir. örneğin, lider anahtarı yerleşik olmasa da, bir kötülük lideri eklentisi yükleyebilirsiniz.
chen bin

Elbette @ chenbin, ben sadece yerleşik olan ve varsayılan olarak kötülük ile etkinleştirilen şeylerden bahsediyordum.
shosti

3

Kötülüğün amacı Vim'i taklit etmek, oysaki Viper'ın hedefi Vi'yi taklit etmektir. Vim-mode ve Vimpulse, Kötülüğün öncülleridir ve benim bilgim artık gelişmedi. Evil projesi bu projelerin eksikliklerini ele almaya başlamıştır.

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.