Bind / map Zeichen an alt + [irgendein Schlüssel]?

2146
quack quixote

OS: Ubuntu

Bei der Programmierung und bei verschiedenen Terminalprogrammen (Screen, Vim) werden [,], häufig verwendet. Ich verwende eine norwegische Tastatur, auf der diese so platziert sind, dass ich meine Finger etwas zu lang strecken muss, um bequem zu sein. Um es einfacher zu machen, denke ich, ich würde versuchen, alt + [irgendein Schlüssel] zu einem dieser Zeichen zu machen. Gibt es eine Möglichkeit, die ich binden kann, zB alt + æ (norwegischer Buchstabe), an systemweit zu "{"?

Übrigens, nennt man so etwas Binding, Mapping oder etwas anderes? Ich bin etwas verwirrt von den Begriffen ... :)

4
(als Kommentar, da ich sehr wenig von Linux kenne und dies ein Stich im Dunkeln ist) Dies könnte etwas sein, das Ihnen dabei helfen könnte: http://xmacro.sourceforge.net/ (Ich habe nach einem gleichwertigen Autohotkey gesucht für linux) Dmatig vor 14 Jahren 0
"Bindung" und "Zuordnung" eines Schlüssels sind ziemlich ähnliche Operationen. Ich denke, der Unterschied liegt in dem, was Sie mit dem Tastendruck verbinden: Wenn Sie eine Funktion verbinden (* führen Sie dieses Makro aus, wenn diese Taste (n) gedrückt wird), ist es "bindend"; Wenn Sie ein Symbol verbinden (* geben Sie dieses Symbol ein, wenn diese Taste (n) gedrückt wird *), ist es "Zuordnung". quack quixote vor 14 Jahren 0

1 Antwort auf die Frage

1
richq

Leider ist es nicht möglich, die Alt + -Taste zu verwenden. Sie sehen, dass die Eingabe von Alt + Taste in einem Befehlsfenster genau das gleiche ist wie das Drücken von Escape gefolgt von der Taste.

Ich habe zwar eine Art Lösung für Sie, aber es erfordert etwas Beinarbeit und nimmt an, dass Sie X ausführen. Ihr Bildschirm / vim in einem Terminal-Emulator funktioniert trotzdem damit.

Ich verwende eine spanische Tastatur, und die []{}Symbole befinden sich auf den Tasten rechts von meinem kleinen Finger auf der rechten Hand, erfordern jedoch auch das Drücken der AltGr-Taste . Das bedeutet, meine rechte Hand etwas zu sehr zusammenzuschneiden. Ich habe dies mit xmodmap geändert .

Wenn Sie eine Datei mit dem Namen .Xmodmap zu Ihrem Home-Verzeichnis hinzufügen, wird sie bei jeder Anmeldung bei X automatisch abgerufen. Alternativ können Sie sie jederzeit mit ausführen xmmodmap ~/.Xmodmap.

Hier ist ein Beispiel, wie Sie dies einrichten. Das Symbol für die rechte Klammer }befindet sich auf einer Taste mit çmeiner Tastatur, aber ich muss AltGr zusammen mit der Taste drücken, um die richtige Klammer zu erhalten. Um zu sehen, welcher Keycode diesem zugeordnet ist, verwende ich xmodmap -pk:

$ xmodmap -pk | grep brace 51 0x00e7 (ccedilla) 0x00c7 (Ccedilla) 0x00e7 (ccedilla) \ 0x00c7 (Ccedilla) 0x007d (braceright) 0xfe55 (dead_breve) # split to prevent scroll, this is all on one line 

Dies bedeutet, dass der Schlüsselcode 51 diesen Tasten mit den verschiedenen Modifizierern zugeordnet wird. Hier ist was man xmodmapzu sagen ist:

keycode NUMBER = KEYSYMNAME ... The list of keysyms is assigned to the indicated keycode (which may be specified in decimal, hex or octal and can be determined by running the xev program). Up to eight keysyms may be attached to a key, however the last four are not used in any major X server implementation. The first keysym is used when no modifier key is pressed in conjunction with this key, the second with Shift, the third when the Mode_switch key is used with this key and the fourth when both the Mode_switch and Shift keys are used. 

Also hier haben wir:

  • kein Modifikator = ccedilla ç
  • Verschiebung = Ccedilla Ç
  • Mode_switch = ccedilla
  • Mode_switch und shift = Ccedilla
  • AltGr = Braceright}

Beim Experimentieren scheint der fünfte Eintrag tatsächlich zu sein, wenn AltGr gedrückt wird und die Taste gedrückt wird. Soviel zur Dokumentation, wie? Ich habe keine Ahnung, was die Mode_switch-Taste ist, es ist sicherlich nicht Alt, Shift oder Ctrl.

Ich wollte diese am meisten nutzlosen Schlüssel ändern, }um standardmäßig zu haben . Der Eintrag in meiner .Xmodmap lautet wie folgt:

keycode 51 = braceright Ccedilla ccedilla Ccedilla braceright dead_breve 

Ich schreibe nie Ccedillas (außer in diesem Beitrag, und hier habe ich es geschrieben, indem ich ein Ç eingetippt habe, das guwin Vim verwendet wird, um Kleinbuchstaben zu machen!), Damit ich sie nicht vermisse. Andere Schlüssel, wie zum Beispiel der Schlüssel ], waren komplizierter. Dieser Schlüssel hat darauf *+]geschrieben. Ich habe das Plus auf eine andere Taste verschoben (das doppelte umgekehrte Ausrufezeichen entfernt ¡), hatte es standardmäßig und *mit Shift ausspucken lassen . Das AltGr-Verhalten habe ich nicht berührt.

Ich habe ähnliche Einträge für andere Schlüsselcodes, die den Schlüsseln der anderen Codierer entsprechen. Manchmal denke ich, ich sollte ein Layout aus den USA oder Großbritannien neu lernen, nur um zu hacken. Ich würde jedoch die schicken Schlüssel in E-Mails vermissen.