Qt unterstützt Emacs-ähnliche Tastenkombinationen , jedoch nur für bis zu vier Tasten. Um zu verdeutlichen, warum diese Grenze erhöht werden sollte, wäre es nützlich, Beispiele für Emacs-ähnliche Tastaturbelegungen mit noch mehr Tasten als dieser zu zeigen. Gibt es dafür bekannte Beispiele oder sogar eine Möglichkeit, programmgesteuert lange Schlüsselsequenzen zu finden, die in Emacs-Schlüsselkarten definiert sind?
edit: Ich dachte, das wäre allgemein bekannt, aber eine Tastenfolge besteht aus einer Reihe von Tasten, die von eingelesen werden read-key-sequence
. Versuchen Sie es F1 k
mit Ihrem Kandidaten und prüfen Sie, ob er Ihren Befehl beschreibt oder einen anderen, der ihm vorausgeht.
key-bindings
keymap
Wasamasa
quelle
quelle
C-u 1 0 0 0 C-n
welches sechs Tasten sind.F1 k C-u 1 0 0 0 C-n
und tun Sie, dasC-u
ist eine Tastenfolge für sich.Antworten:
Ich habe mit dem folgenden Skript getestet,
Und die längst ich mit meinem bekommen
.emacs.d
heißt ,C-x c C-x r i
das ist einiger Helm Befehl ein , und mitemacs -q
I erhalten ,C-x a i l
die dem Befehl ausführtinverse-add-mode-abbrev
.quelle
C-x M-c M-b u t t e r f l y
:) Ich hatte vergessen, dass ich das getan hatte ...where-is-internal
dominiert hier bei weitem die CPU-Zeit, aber Sie können sich trotzdem leicht ein paar Zyklen rasieren, indem Sie die kürzere Liste der längeren Via destruktiv voranstellen(setq keyseqs (nconc (where-is-internal sym nil nil t) keyseqs))
.M-x butterfly
? Ich habe es nur an diesen Befehl gebunden, um die Authentizität zu erhöhen :)Ich kann nicht sagen, was das längste irgendwo da draußen sein könnte, aber hier ist ein paar Info, die helfen könnten.
Ich habe einige Bibliotheken, die eine Reihe verwandter Befehle bereitstellen, die an Schlüssel in einer Keymap gebunden sind, die ich an einen Präfixschlüssel binde.
Da ich keine Benutzerschlüssel usw. auswählen möchte, binde ich einen solchen Präfixschlüssel normalerweise unter (keymap ), z. B.
C-x
oder fürother-window
Befehle unterC-x 4
(keymapctl-x-4-map
).Dieselben Überlegungen gelten für Befehlsgruppen in einer solchen Tastaturbelegung: Manchmal erhalten sie eine eigene Tastaturbelegung. Und so weiter, rekursiv.
Ich gehe davon aus, dass zumindest einige Benutzer solche Keymaps (auf einer beliebigen Ebene) erneut mit ihren eigenen, kürzeren Präfix-Schlüsseln verknüpfen möchten oder bestimmte Befehle an kürzere Tastensequenzen binden möchten. Aber das möchte ich natürlich nicht in der Bibliothek selbst tun.
Hier ist ein Beispiel für eine solche relativ lange Taste:
C-x 4 j t . % *
(sieben Tastenanschläge), dieicicle-bookmark-file-this-dir-all-tags-regexp-other-window
in Bookmark + zwangsläufig zum Befehl wird .Anatomie:
Auf dem
C-x 4
Präfixschlüssel (ctl-x-4-map
).Auf der
j
Präfix-Taste, die für alle Befehle zum Springen auf ein Lesezeichen steht .Auf der
t
Präfixtaste, die für alle Befehle zum Springen zu Lesezeichen verwendet wird, die in irgendeiner Weise markiert sind .Auf dem
.
Präfixschlüssel, der für alle Befehle zum Springen zu Lesezeichen gilt, die sich auf Dateien im aktuellen Verzeichnis beziehen, die in irgendeiner Weise mit Tags versehen sind .Auf dem
%
Präfixschlüssel, der für alle Befehle zum Springen zu Lesezeichen im aktuellen Verzeichnis steht , die Tags enthalten , die mit einem regulären Ausdruck übereinstimmen, nach dem Sie gefragt werden.Auf der
*
Taste, die für alle Befehle zum Springen zu Lesezeichen im aktuellen Verzeichnis steht , die Tags haben , von denen ALLE mit einem regulären Ausdruck übereinstimmen Sie werden. (Im Gegensatz dazuC-x 4 j t . % +
ist für Lesezeichen SOME von deren Tags entsprechen den regulären Ausdruck.)Alles das ist konventionell Bookmark + (und ein Teil davon entspricht Dired Konventionen, BTW):
j
ist für Sprungbefehle für ist markiert , ist für strom Verzeichnis , ist für regexp , und ist für alle (t
.
%
*
+
für einige ).(Oh, und mit @ mkcms's sexp bekomme ich
C-x 4 j t f % *
, was gleich lang ist. Dasf
steht für Datei . Es ist wieC-x 4 j t . % *
, aber die Kandidaten-Lesezeichen für die Vervollständigung sind alle Datei-Lesezeichen, nicht nur die für Dateien im aktuellen Verzeichnis (.
).)quelle
Magit
Fügt lange Sequenzen hinzu, da die Optionen umgeschaltet werden können. Wenn Sie beispielsweise nach dem Protokoll fragen, können Sie kurze oder lange Optionen auswählen, ob Sie entfernte Verzweigungen oder nicht, ob Sie die grafische Anzeige von Verzweigungen usw. wünschen. Die grundlegende Anforderung für ein Protokoll ist nur ein paar Tastatureingaben von dermagit-status
Puffer, aber Sie können viele weitere hinzufügen.Gleiches gilt für das Festschreiben, zwei Tastenanschläge für ein einfaches Festschreiben, aber viele optionale Ergänzungen.
Die Frage ist also unter präzisiert, ziehen Sie nur einen
stock
(was auch immer das bedeutet) Emac in Betracht ?quelle
F1 k
Sie, die Anzahl der Tasten zu ermitteln, die Sie eingeben können, bis der Befehl beschrieben wird.