Was sind die Konventionen für die Verwendung C-x
, C-c
oder M-
als Präfix Schlüssel?
Zum Beispiel: dient C-x
usw. zum Speichern oder Aufrufen von Puffern? Ist C-c
für die Textbearbeitung usw.?
Hintergrund
Vielleicht ist das eine dumme Frage. Ich verwende eine spanische Tastatur und definiere manchmal die Tastaturbelegungen neu, die für eine englische (QWERTY) Tastatur üblich sind. Beispiel: Der Shell-Befehl ist in Vanille Emacs an gebunden M-!
. Ich binde es M-¡
stattdessen an, weil es M-!
ist M-shift-1
, was ich nicht leicht drücken kann. Ich frage mich, ob es Konventionen gibt, die ich überschreibe, wenn ich solche Änderungen vornehme
key-bindings
elisp-conventions
anquegi
quelle
quelle
M-x
is for "Erweiterten Befehl ausführen. Dies ist das Tor zu vielen hochentwickelten Funktionen, die Sie interaktiv in Emacs ausführen können. Sie können jede Elisp-Funktion nach Namen ausführen." hatC-c
undC-x
nicht eine Beschreibung wie diese?Antworten:
Wenn Sie über das Binden von Schlüsseln für den eigenen Gebrauch sprechen, gilt folgende Regel: Sie können beliebige Schlüssel binden.
Wenn Sie sicher sein möchten, dass Sie keinen möglicherweise bereits gebundenen Schlüssel binden, verwenden Sie
C-c
gefolgt von einem Buchstaben. Alle diese Schlüssel sind für Benutzer reserviert (siehe weiter).Wenn Sie über das Binden von Schlüsseln in Code (z. B. einer Bibliothek) sprechen, die Sie für die Verwendung durch andere schreiben, werden die Regeln (Konventionen) hier beschrieben: Knoten Schlüsselbindungskonventionen des Elisp-Handbuchs.
Die wichtigsten Regeln in Bezug auf das, was Sie fragen, sind folgende
C-c
:Definieren Sie nicht
C-c LETTER
als Schlüssel in Lisp-Programmen. Sequenzen bestehend ausC-c
und einem Buchstaben (entweder in Groß- oder Kleinschreibung) sind für Benutzer reserviert; Sie sind die einzigen Sequenzen, die für Benutzer reserviert sind. Blockieren Sie sie daher nicht.Sequenzen,
C-c
denen ein Steuerzeichen oder eine Ziffer folgt, sind für Hauptmodi reserviert.Sequenzen aus ,
C-c
gefolgt von{
,}
,<
,>
,:
oder;
auch für Hauptmodi vorbehalten.Sequenzen, die aus
C-c
gefolgt von anderen ASCII-Interpunktionszeichen oder Symbolzeichen bestehen, werden für untergeordnete Modi zugewiesen. Die Verwendung in einem Hauptmodus ist nicht absolut verboten. Wenn Sie dies jedoch tun, kann die Bindung des Hauptmodus von Zeit zu Zeit durch Nebenmodi beeinträchtigt werden.Sie werden feststellen, dass diesbezüglich keine Konvention besteht
C-x
. Eine nicht angegebene Konvention oder nur ein guter Rat / eine gute Praxis ist jedoch die folgende: Wenn Sie eine vorhandene Standard-Emacs-Bindung ersetzen (dh eine, die Sie von Emacs als verteilt erhalten, ohne Bibliotheken von Drittanbietern zu laden), kann dies zu Verwirrung führen oder Ärgern Sie einige Benutzer Ihres Codes.Sie können dieses Dokument in Emacs folgendermaßen aufrufen:
C-h i
, um Info, den Doc-Browser, zu öffnen.m el TAB RET
, Für m enu el isp (TAB
auf vollständig), oder klicken Sie einfach auf denElisp
Link mit der Maus.key bi TAB
, dannn TAB RET
zu vervollständigenKey Binding Conventions
.Oder Sie können
i
im Elisp-Handbuch Folgendes verwenden, um Indexeinträge zu vervollständigen:C-h i m el TAB RET
.i key bi TAB
Dies ergänztkey binding
und zeigt Ihnen zwei Möglichkeiten:key binding
undkey binding, conventions for
. Geben Sie ein,, TAB
um die Eingabe bis zur Sekunde abzuschließen, undRET
akzeptieren Sie sie dann.quelle
C-c
Benutzerbefehle zu binden und mit Buchstaben zu versehen. Auf diese Weise kann man (fast) sicher sein, dass man keine andere Bindung von einem bereits installierten oder zukünftig zu installierenden Hauptmodus überschreibt.C-c
+ LETTER in Bibliotheken von Drittanbietern.@Drews Antwort ist viel differenzierter und detaillierter.
Dies ist eine vollkommen berechtigte Frage!
Es gibt die Konvention, dass dasC-x
von Emacs selbst reserviert wird, während dasC-c
Präfix für benutzerdefinierte Tastenkombinationen verwendet wird.Schauen Sie sich dies an , insbesondere den Abschnitt "Reservierte Schlüssel". Ich bin mir ziemlich sicher, dass diese Informationen auch im Emacs-Handbuch enthalten sind, aber ich kann sie derzeit anscheinend nicht finden.Die Konventionen werden in diesem Abschnitt des emacs lisp-Handbuchs beschrieben.quelle
C-c
gefolgt von einem Buchstaben (Groß- oder Kleinschreibung) ohne weitere Modifikatoren ist den Benutzern vorbehalten. Viele andere Tastenfolgen, die mit beginnen,C-c
sind für Hauptmodi reserviert - insbesondere solche, bei denen der zweite Tastendruck ebenfalls durch die Steuertaste geändert wird.M-x
is for "Erweiterten Befehl ausführen. Dies ist das Tor zu vielen hochentwickelten Funktionen, die Sie interaktiv in Emacs ausführen können. Sie können jede Elisp-Funktion nach Namen ausführen." hatC-c
undC-x
nicht eine Beschreibung wie diese?