Jakie pakiety są dostępne do edycji modalnej w Emacsie? Czego używasz i dlaczego?
Spróbujmy wysłać jedną paczkę na odpowiedź. Proponuję wymienić zalety i wady każdego pakietu.
Oto moja definicja edycji modalnej (nie mogłem znaleźć dedykowanego artykułu Wikipeadia):
Edycja modalna - styl edycji tekstu, gdy użytkownik okresowo przełącza się zwykle między „trybem normalnym”, gdy klawisze nie powodują wstawiania znaków, ale wykonują różne operacje na tekście i „trybem wstawiania”, gdy klawisze wstawiają odpowiednie znaki. Oczywiście może być więcej trybów. Większość współczesnych edytorów nie jest modalna. Przykładem modalnego edytora tekstu jest Vi (Vim).
key-bindings
prefix-keys
Mark Karpov
źródło
źródło
Odpowiedzi:
evil
The e xtensible VI l Ayer EmacsowiPomijając wątpliwą nazwę,
evil
jest obecny stan techniki, jeśli chodzi ovim
emulację w Emacsie (i być może gdziekolwiek indziej). Obsługuje wiele funkcji, których unikają inne pakiety emulacji Vima, w tym:vim
obiekty tekstowevim
rejestryvim
makra klawiaturyex
poleceniaZalety
vim
oznacza , że nie tracisz pamięci mięśniowej podczas przełączania na systemy bez Emacsa.vim
zostało przeniesionychevil
.vim
gramatyka stylu jest modułowa i nadaje się bardzo dobrze do rozszerzenia użytkownikaevil
sam w sobie jest bardzo rozszerzalny: twórz własne obiekty tekstowe, operatory i ruchy!Niedogodności
evil
sprawia , że najczęstsze przypadki użycia są niezwykle łatwe.evil
to bardzo złożony system. Hakowanie złego rdzenia może być dość zaangażowane.vim
skróty klawiszowe niekoniecznie są ergonomicznie optymalne. Czasami mogą czuć się trochę arbitralni po przeniesieniu do innego systemu.źródło
Istnieje
god-mode
( https://github.com/chrisdone/god-mode ), który wykorzystuje standardowe powiązania klawiszy Emacsa, ale eliminuje potrzebę przytrzymywania modyfikatorów. Gdy trybC-...
boski jest włączony, wiązania nie wymagają modyfikatora, aM-...
powiązania używają przedrostka zamiast modyfikatora.Jako przykład ze strony github:
źródło
Modalka musi być najnowszym dzieckiem w bloku edycji modalnej. Wygląda na to, że projekt github ma 10 dni. Nie mam wystarczająco dużo czasu na komentowanie lub ocenę, ale oto jak to opisano:
Dokumentacja również porównuje i kontrastuje Modalka z innych wspólnych rozwiązań, takich modalnych
evil
,god-mode
,boon
, etc.źródło
Dodanie własnego, dziękuję @Mark za zachętę.
Xah Fly Keys
Zaprojektowany od podstaw dla emacsa, z zamiarem bycia NAJBARDZIEJ wydajnym systemem, z wieloletniego doświadczenia w trybie ergoemacs. Kluczowe wybory są oparte na nauce w jak największym stopniu, na podstawie statystyk częstotliwości klucza i łatwego do naciśnięcia wyniku. Najczęściej używane polecenia są przypisane do klawiszy najłatwiejszych do naciśnięcia. Inne kwestie, takie jak grupowanie i bigram związany z kluczami, są również brane pod uwagę na podstawie 3-tygodniowego eksperymentu.
Ciekawe punkty:
Niedogodności:
Jestem autorem, więc ostrzegam, że mogę być nieświadomie stronniczy. Skomentuj lub popraw.
źródło
Dar
Boon jest jednym z mniej znanych pakietów do edycji modalnej. Nie emuluje Vi (ani Vima), ale zapewnia oryginalny układ zoptymalizowany pod kątem układu klawiatury Colemak.
Zalety i zasady projektowania
Najpierw alokacja przestrzenna, a po drugie mnemonika: alokacja klawiszy do poleceń zależy w pierwszej kolejności od lokalizacji klawiszy na klawiaturze. Cokolwiek jest wydrukowane na kluczu, jest sprawą drugorzędną.
Łatwe rolki palców: powszechną kombinacją powinny być albo naprzemiennie lewe / prawe ręce albo łatwe rolki jedną ręką.
Użycie wiersza głównego i mocnych palców do najczęściej używanych poleceń
Łatwa nawigacja: wiele poleceń jest powiązanych z nawigacją. Ułatwia to poruszanie się. Ponieważ ruchy podwajają się jako definicje regionu, sprawia, że polecenia manipulacyjne (operatory) są silniejsze.
Niedogodności
źródło
Ergoemacs obsługuje również edycję modalną. Nie emuluje vi, ale używa klawisza Alt do najczęściej używanych poleceń. Na przykład, przesuwającym się kursorem jest Alt plus odwrócony prawy T. (w QWERTY jest to Alt+ jfor left, Alt+ lfor right, Alt+ ifor upi Alt+ kfor down). Usuwanie znaku lub słowa odbywa się za Altpomocą klawiszy lewego rzędu domu. Klawisze są wybierane na podstawie częstotliwości poleceń i pozycji klawiszy w celu ułatwienia naciśnięcia.
Obok tradycyjnego modalnej paradygmatu jest quasi modalne paradygmat umożliwia dowolny
C-x
lubC-c
kombinację klawiszy być osiągnięty bez użycia jakichkolwiek modyfikatorów (jak chrzestnej trybu).C-c
z wciśniętym klawiszem sterującym i QWERTY apps dforC-x
.Oprócz zmiany klawiszy poleceń, tryb ergoemacs pozwala zmieniać rzeczy o sekwencji klawiszy podczas pisania:
Tryb ergoemacs próbuje także uszanować wszystko, co tryb robi kluczowym kluczom. Na przykład, jeśli tryb org definiuje specjalny klucz dla
next-line
, ergoemacs używa tego polecenia dla Alt+ kw trybie org.Zalety:
C-o
), Zamknij (C-w
), Wybierz wszystko (C-a
), Kopiuj (C-c
), Wytnij (C-x
), Wklej (C-v
) itp.Niedogodności:
Zobacz https://github.com/ergoemacs/ergoemacs-mode
źródło
Inną półmodalną opcją jest Hydra:
https://github.com/abo-abo/hydra
Według strony internetowej
Wyobraź sobie, że związałeś Cc j i Cc k w swojej konfiguracji. Chcesz wywoływać Ccj i Cck w jakiejś (dowolnej) sekwencji. Hydra umożliwia:
Powiąż swoje funkcje w taki sposób, że naciśnięcie Cc jjkk3j5k jest równoważne naciśnięciu Cc j Cc j Cc k Cc k M-3 Cc j M-5 Cc k. Każdy klucz inny niż j lub k wychodzi z tego stanu.
Przypisz niestandardową wskazówkę do tej grupy funkcji, aby natychmiast po naciśnięciu klawisza Cc wiedziałeś, że możesz śledzić za pomocą j lub k.
Nie użyłem tego, ale wydaje się interesujące.
źródło