Czy istnieje jakiś sposób na powiązanie C-[
z czymś i nie M-
pomieszanie wszystkich powiązań (Meta)?
Nie pierwszy raz pojawia się to pytanie. Niestety, jedynym rozwiązaniem oferowanym w poprzednim wątku jest: a) specyficzne dla Linuksa, b) wymaga zewnętrznego narzędzia (znowu specyficznego dla Linuksa), które nie ma nic wspólnego z Emacsem. W tym samym duchu mogłem użyć czegoś takiego jak Karabiner na OS X, aby ukraść C-[
sekwencję, zanim Emacs ją kiedykolwiek dostanie, ale jest to niezgrabne i kosztowne.
Biorąc pod uwagę, że jest Emacs, że kładzie nacisk na tłumaczenia C-[
do ESC
, C-i
aby TAB
i prawdopodobnie inni ja bardzo chciałbym złamać te relacje i uzyskać cenne sekwencje klawiszy z powrotem. Niedawno wbiegłem w ten problem z pełną prędkością i obwiniałem cichy tryb niewinnych smartparenów .
Możliwe rozwiązanie, które dotyczyło function-key-map
i key-translation-map
zostało omówione tutaj, ale niestety już nie działa lub nie działało w pierwszej kolejności (lub robię coś złego). Myślę jednak, że zmierzał we właściwym kierunku.
źródło
C-[
naESC
”. Te dwie rzeczy są takie same . PodobnieC-i
iTAB
są różne nazwy dla tego samego kodu sterującego ASCII.C-[
(naciśnięcieCtrl
i naciśnięcie[
) na znakC-[
kontrolny (znany również jako znak), ale jest to logiczne i proste , ale nie jest to obowiązkowe dla kogoś, kto projektuje edytor. I tak, Emacs to robi. i są tym samym znakiem, ale klawisze + i nie muszą być przypisane do konkretnych znaków.ESC
C-[
ESC
Ctrl
[
Esc
Odpowiedzi:
Zaadaptowano z mojej własnej konfiguracji :
Będzie to oczywiście działać tylko w GUI.
edycja: Zauważ, że
input-decode-map
jest to terminal lokalny, co oznacza, że modyfikacja nie będzie działać, jeśli używaszemacsclient
, ale zrobi to, jeśli używaszemacs
. Naprawiłem problem w mojej konfiguracji, zawijając go w poleceniu operującym na ramce i dodając doafter-make-frame-functions
zaczepu.źródło
<C-i>
i<C-[>
powrót doTAB
iESC
na mapie globalnej, jak sugerujesz w konfiguracji, powoduje awarię mojego Emacsa za każdym razem, gdy go uderzę: