Stellen Sie sich vor, Sie ändern Ihr Tastaturlayout. Sie müssen Zeit damit verbringen, Ihre Muskeln zu trainieren, um die Tasten zu finden, die Sie eingeben möchten. Dies ist bereits schwierig genug.
Sie müssen aber auch Zeit damit verbringen, Ihre Muskeln zu trainieren, um die Tasten zu finden, die Sie als Teil von Verknüpfungen eingeben möchten, was lächerlich ist (Sie haben diese Tasten normalerweise ausgewählt, weil sie leicht zu erreichen sind, nicht wegen ihres Buchstabens *).
Gibt es eine Möglichkeit, diese Tastendefinitionen nicht zu verschieben, wenn Sie Ihr Tastaturlayout ändern?
Wenn ich zum Beispiel in azerty bin und QWERTY lernen möchte, hätte ich gerne eine beginning-of-line
Neuzuordnung von C-a
zu vorgenommen C-q
, damit es dort bleibt, wo es sich auf meiner Tastatur befindet (erste Taste rechts von TAB
).
So wie ich es verstehe, wird es teilweise durch Eingabemethoden implementiert, aber es geht umgekehrt: Es ändert die Art und Weise, wie Emacs Eingabezeichen für Text interpretiert. Es funktioniert jedoch nicht, wenn Sie beispielsweise Ihr Tastaturlayout systemweit ändern möchten.
Ich verstehe, dass es viele Möglichkeiten gibt, Tastenkombinationen zu definieren, aber ich würde zum Beispiel eine Lösung für akzeptabel halten, die sich um alle Tastenkombinationen kümmert, die mit der kbd
Funktion aus menschlichen Zeichenfolgen konvertiert wurden .
*. Dies gilt nicht für bestimmte Schlüssel, die seltener verwendet werden. In der C-c
Karte der meisten Hauptmodi werden beispielsweise Schlüsselnamen verwendet, die leicht zu merken und nicht leicht zu erreichen sind. Als Bonusfrage wäre es schön, einige Tastenkombinationen beizubehalten (neu zuzuordnen, damit sich der physische Schlüssel nicht bewegt) und einige andere zu verschieben (nicht neu zuzuordnen, der dem Schlüssel zugeordnete Buchstabe ändert sich nicht). Der Benutzer kann die eine oder andere Option auswählen, indem er zwei verschiedene Funktionen verwendet, anstatt kbd
seine Tastenkombinationen zu definieren.
quelle
Antworten:
Soweit ich Ihre Frage verstehe,
key-translation-map
scheint dies eine gute Lösung für Ihr Problem zu sein. Wenn Sie sich beispielsweiseC-q
wieC-a
in Ihrem Beispiel verhalten möchten, definieren Sie Folgendes:quelle