F: Wie wechsle ich zwischen Eingabemethoden für verschiedene Sprachen, wenn ich ein nicht standardmäßiges Tastaturlayout verwende?
Ich muss Text in zwei verschiedenen Sprachen bearbeiten. Ich möchte meine Tastenkombinationen in beiden Sprachen verwenden können, außer natürlich beim Einfügen von Text in den Puffer. Es sieht so aus, als ob ich in der Lage sein sollte toggle-input-method
( C-\
) und die alternative Sprache auszuwählen.
So weit, fast so gut.
Hier ist das Problem: Ich verwende das englische Dvorak-Layout, das ich auf Betriebssystemebene festgelegt habe (dh mit setxkbmap
). Wenn ich toggle-input-method
, würde der Text, den ich einfüge, korrekt sein, wenn ich ein QWERTZ-Layout hätte (der Standard in den USA), aber als Kauderwelsch herauskommt, weil ich auf Dvorak bin. (FWIW, wenn ich mein Layout auf Standard US umstelle, funktioniert es einwandfrei.)
Also: Wie informiere ich Emacs, dass ich Dvorak verwende, damit toggle-input-method
Freunde meine Tastendrücke in die richtigen Zeichen in der anderen Sprache übersetzen?
quelle
Antworten:
Es gibt eine Methode zum Ändern der physischen Layoutdefinition für die Eingabemethode durch Festlegen
quail-keyboard-layout-type
. Aber es sieht so aus, als ob Dvorakquail-keyboard-layout-alist
in meinem Emacs 24.4 nicht zu den möglichen Kandidaten gehört .Sie können entweder ein neues physisches Tastaturlayout definieren, indem Sie sich die Definition von
quail-keyboard-layout-alist
inquail.el
ansehen, oder eine neue Eingabemethode erstellen, indem Sie die entsprechenden arabischen Tasten für das Dvorak-Layout definieren.Ich bin im ersten nicht erfahren, aber ich kann bezeugen, dass der zweite Ansatz einfacher ist als Sie denken. (Ich musste zusätzlich zu Farsi eine osmanisch-türkische Eingabemethode erstellen.) Kopieren Sie
arabic.el
(die sich in meinem Debian-System unter befindet/usr/share/emacs/24.4/lisp/leim/quail/arabic.el.gz
) zu Ihnen nach Hausesite-lisp
und ändern Sie die Schlüssel nach Ihren Wünschen. Vergessen Sie auch nicht, die Namen der Eingabemethoden usw. zu ändern. Sie haben gerade eine neue dvorak-arabische Eingabemethode erstellt.Ich kann die Antwort mit weiteren Details aktualisieren, wenn etwas komplex erscheint.
quelle
...-alist
Version dorthin gekommen bin .quail-. *-alist
Emacs-Entwicklung senden . Ich bin sicher, dass es andere Dvorak-Benutzer gibt, die davon profitieren werden.@EmreSahin hat mich auf den richtigen Weg gebracht, um diese Frage zu beantworten. Deshalb lege ich ein paar Details dar, falls sich jemand anders jemals selbst mit einem solchen Problem befassen muss.
Wie Emre betont, müssen wir ein Dvorak-Layout hinzufügen
quail-keyboard-layout-alist
. Es stellt sich heraus, dass diequail
Bibliothek im Handbuch , in dem zwei verwandte Funktionen bei der Weitergabe an einen Knoten erwähnt werden, nicht gut dokumentiert ist .Doch nach Anhörung diese Hilfe Faden und vor allem die EmacsWiki Seite auf Russisch mit Dvorak (aus dem diese Antwort Krippen), habe ich denke , ich habe es herausgefunden .
Die Dokumentzeichenfolge für die Variable
quail-keyboard-layout
beschreibt, was wir eingeben müssenquail-keyboard-layout-alist
. Es ist eine lange Zeichenfolge, die 6 Zeilen mit jeweils 15 Schlüsseln entspricht. Jede Zeile entspricht den nicht verschobenen und verschobenen Werten jeder Taste für insgesamt 30 Zeichen pro Zeile. In Bezug auf den folgenden Punkt bin ich mir weniger sicher, aber es scheint, dass für die sogenannten "Semi-Standard" -Tastaturen mit 4 Tastenreihen die erste und die sechste Reihe jeweils 30 Leerzeichen sein sollten.Die große Enthüllung:
quelle