Jakie są konwencje dotyczące korzystania C-x
, C-c
lub M-
jako klawisze prefiks?
Na przykład: czy C-x
itp. Służy do zapisywania lub odwiedzania buforów? Czy C-c
itp. Służy do edycji tekstu?
tło
Może to głupie pytanie. Używam hiszpańskiej klawiatury i czasami redefiniuję skróty klawiaturowe, które są wspólne dla klawiatury angielskiej (QWERTY). Na przykład: polecenie powłoki jest powiązane w waniliowym Emacsie z M-!
. Wiążę ją M-¡
zamiast, ponieważ M-!
to M-shift-1
, czego nie może nacisnąć łatwo. Zastanawiam się, czy istnieją konwencje, które zastępuję, kiedy wprowadzam tego rodzaju zmiany
key-bindings
elisp-conventions
anquegi
źródło
źródło
M-x
dla „wykonaj rozszerzone polecenie, jest to brama do wielu wyrafinowanych rzeczy, które można wykonać interaktywnie w Emacsie; pozwala na uruchomienie dowolnej funkcji Elisp według nazwy”. maC-c
iC-x
nie ma takiego opisu?Odpowiedzi:
Jeśli mówisz o wiązaniu kluczy na własny użytek, to jest to reguła: możesz powiązać dowolne klucze, które lubisz.
Jeśli chcesz mieć pewność, że nie powiążesz klucza, który może być już związany, użyj
C-c
litery, a następnie litery. Wszystkie takie klucze są zastrzeżone dla użytkowników (patrz dalej).Jeśli mówisz o wiązaniu kluczy w kodzie (np. Bibliotece), który piszesz, do użytku przez innych, reguły (konwencje) są opisane tutaj: węzły Konwencje wiązania kluczy w podręczniku Elisp.
Główne zasady związane z tym, o co pytasz, dotyczą
C-c
:Nie definiuj
C-c LETTER
jako klucza w programach Lisp. Sekwencje składające się zC-c
litery oraz litery (zarówno wielkiej, jak i małej) są zarezerwowane dla użytkowników; są to jedyne sekwencje zarezerwowane dla użytkowników, więc nie blokuj ich.Sekwencje składające się z
C-c
następujących po nich znaków kontrolnych lub cyfr są zarezerwowane dla głównych trybów.Sekwencje składające się
C-c
następnie{
,}
,<
,>
,:
lub;
też zarezerwowana dla głównych trybach.Sekwencje składające się z
C-c
następujących po nich znaków interpunkcyjnych ASCII lub symboli są przydzielane dla mniejszych trybów. Używanie ich w trybie głównym nie jest absolutnie zabronione, ale jeśli to zrobisz, powiązanie trybu głównego może być od czasu do czasu zasłaniane przez mniejsze tryby.Zauważysz, że nie ma konwencji dotyczącej
C-x
. Jest to jednak nieokreślona konwencja lub po prostu dobra rada / praktyka: jeśli zastąpisz niektóre istniejące, standardowe powiązania Emacsa (tj. Takie, które otrzymujesz od Emacsa jako rozpowszechnione, bez ładowania bibliotek stron trzecich), może to pomylić lub denerwować niektórych użytkowników Twojego kodu.Możesz przejść do tego dokumentu w Emacsie, w ten sposób:
C-h i
, aby otworzyć Info, przeglądarkę dokumentów.m el TAB RET
Dla m enu el ISP (TAB
do pełna), lub po prostu kliknij naElisp
link, za pomocą myszy.key bi TAB
, a następnien TAB RET
wykonaćKey Binding Conventions
.Możesz też użyć
i
instrukcji Elisp, aby uzupełnić wpisy indeksu:C-h i m el TAB RET
.i key bi TAB
, który uzupełniakey binding
i pokazuje dwie możliwości:key binding
ikey binding, conventions for
. Wpisz,, TAB
aby zakończyć do drugiego, a następnieRET
go zaakceptować.źródło
C-c
i pisać do poleceń użytkownika. W ten sposób można (prawie) mieć pewność, że nie zastąpi innego wiązania z już zainstalowanego trybu głównego lub któregoś dnia zostanie zainstalowane w przyszłości.C-c
+ litera w bibliotece 3rd partii.Odpowiedź Drew jest znacznie bardziej dopracowana i szczegółowa.
To jest całkowicie poprawne pytanie!
Istnieje konwencja, że samC-x
jest zarezerwowany przez emacsa, podczas gdyC-c
prefiks jest używany do skrótów klawiszowych zdefiniowanych przez użytkownika.Spójrz na to , szczególnie w sekcji „Klucze zastrzeżone”. Jestem prawie pewien, że te informacje są również podane w podręczniku emacsa, ale wydaje mi się, że nie mogę ich teraz znaleźć.Konwencje opisano w tej sekcji podręcznika emacs lisp.źródło
C-c
następnie litera (mała lub duża) bez dalszych modyfikatorów jest zarezerwowana dla użytkowników. Wiele innych sekwencji klawiszy rozpoczynających się odC-c
jest zarezerwowanych dla głównych trybów - szczególnie tych, w których drugie naciśnięcie klawisza jest również modyfikowane przez klawisz sterujący.M-x
dla „wykonaj rozszerzone polecenie, jest to brama do wielu wyrafinowanych rzeczy, które można wykonać interaktywnie w Emacsie; pozwala na uruchomienie dowolnej funkcji Elisp według nazwy”. maC-c
iC-x
nie ma takiego opisu?