Jestem świadomy kilku różnych implementacji vima w Emacsie. Istnieje tryb zły, viper, vimpulse i vim-mode. Czy są jeszcze inni? Jak oni się porównują?
Zwracam uwagę, że evil-*
na MELPA jest wiele pakietów, co sugeruje, że żaden z nich nie jest w 100% kompletny. Jakie funkcje vim zapewniają i jakich funkcji vim brakuje?
(Nie interesuje mnie sytuacja odwrotna, w której „ zestaw makr vi, które są [dość] pełną implementacją Emacsa ”!)
vim-emulation
Wilfred Hughes
źródło
źródło
Odpowiedzi:
vi
,vip
Iviper
(sortowane według daty utworzenia) pochodzą z wbudowanym Emacs, wszystkie te naśladować VI.vim-mode
jest nowszym, samodzielnym wysiłkiem, aby faktycznie emulować Vima,vimpulse
jest zestawem dodatkówviper
zapewniających jedną z najbardziej przydatnych funkcji Vima.evil
został utworzony jako zamiennik dlavim-mode
.evil
jest najnowszym i jedynym aktywnie rozwijanym projektem. Jego celem jest wierna emulacja modelu edycji Vima, wykorzystanie istniejącej funkcjonalności Emacsa, gdzie tylko jest to możliwe. Osobiście powiedziałbym, że jest ukończony w około 90%, ponieważgn
brakuje kilku nowych poleceń (takich jak ), niektóre funkcje związane z wyświetlaniem są dość trudne do odtworzenia (jak wyświetlanie tyldy po zakończeniu pliku) i nie implementuje interpreter Vimscript lub cokolwiek poza podstawami trybu Ex. Jednak łatwiejsze do rozszerzenia i introspekcji niż oryginalne,evil-*
rozszerzenia są w Emacsie odpowiednikami wtyczek Vima w prawie wszystkich przypadkach (evil-leader
na przykład byłby wyjątkiem, ponieważ nie jest konieczne oferowanie rozważania obsługi mapy klawiszy Emacsa).Biorąc pod uwagę, że
evil
przewyższa Vima w punktach (patrz:s
i jego wizualny podgląd lub jak mało wysiłku tworzy użyteczny nowy tryb ), z całego serca polecam go wszystkim zainteresowanym edycją modalną dla Emacsa.źródło
g/
że jesteś Vimem jako nowicjusz. Nigdy go nie widziałem i nie mogę znaleźć na nim żadnej dokumentacji. Co robi w Vimie?gn
. Zamienia wyniki wyszukiwania w obiekt tekstowy. Ponadto został już wdrożony.Ponieważ
evil
według mojej wiedzy jest to jedyny aktywnie rozwijany tryb emulacji vim, moja odpowiedź będzie zależała od zła.evil
jest wysoce użyteczny i bardzo podobny do vim, ale istnieją pewne funkcje vim, które najprawdopodobniej nie zostaną zaimplementowane (zgodnie z projektem) i niektóre, które są niekompletne, ale mogą zostać w końcu dodane. Niektóre przykłady rzeczy, które najprawdopodobniej nie zostaną dodane:C-a
iC-x
) nie zostanie dodane, ponieważC-x
jest to zbyt ważne w przypadku skrótów klawiszowych Emacsa.\
jestevil-execute-in-emacs-state
domyślnie związany.C-u
nie jest domyślnie przewijany w górę, ponieważ jest zbyt ważny jako skrót klawiszowy Emacsa (chociaż można to zastąpićevil-want-C-u-scroll
).Aby znaleźć listę funkcji vima, które nie zostały jeszcze zaimplementowane (w momencie pisania tej odpowiedzi), najlepszym miejscem do wyszukiwania jest narzędzie do śledzenia problemów . Losowe próbkowanie rzeczy znajdujących się na liście:
ex
nie jest zaimplementowane .:make
nie jest mapowany naM-x compile
.C-o
winsert
trybie nie zachowuje się tak jak w vimie .Istnieje wiele innych, w tym polecenia, które nie znajdują się na otwartej liście problemów (szczególnie skomplikowane
ex
polecenia), ale jak widać z listy, są to zwykle niewielkie lub niejasne funkcje vim (vim jest raczej dużym celem, z którym można osiągnąć 100% parzystości funkcji).źródło
Celem Zła jest naśladowanie Vima, podczas gdy celem Vipera jest naśladowanie Vi. Tryb Vim i Vimpulse są poprzednikami Zła i według mojej wiedzy nie są już rozwijane. Projekt Evil został rozpoczęty w celu usunięcia niedociągnięć tych projektów.
źródło