Ich arbeite in Ubuntu, aber seit der Standardmethode zum Einfügen von Unicode-Zeichen ( Strg + Shift + U und danach , der Unicode-Code) funktioniert nicht innerhalb von emacs, ich habe in meinem .emacs
einige Tastenanschläge für verschiedene Unicode-Symbole, die ich häufig verwende, zum Beispiel:
und jedes Symbol funktioniert gut, außer dem Symbol §, das durch einen einfachen Bindestrich ("-") ersetzt wird, wenn ich den entsprechenden Tastendruck verwende:
%Vor%Die Frage ist, was macht dieses Symbol für andere Symbole anders und wie kann ich mein Problem lösen?
global-set-key
erwartet normalerweise eine Funktion, das sollte funktionieren:
Aber Sie sind besser dran mit der ausgezeichneten Funktion insert-char
:
Es versteht Hex Unicode sowie Textbeschreibung (mit Abschluss und alle). Drücken Sie einfach TAB , um die Vervollständigungen zu sehen.
Sie können Unicode-Zeichen in Emacs einfügen, indem Sie C-x 8 RET < <unicode-hex>
RET ausführen. Um also §
do C-x 8 RET <00A7 RET
Sie können insert-char
(den Befehl, der von Cx 8 RET ausgeführt wird) an einen einfacheren Schlüssel binden, wenn Sie möchten, oder a definieren benutzerdefinierte Funktion und binden Sie es wie folgt an einen Schlüssel
Eine allgemeine Lösung für die Notwendigkeit, eine Anzahl von Unicode-Zeichen schnell einzufügen, besteht darin, für jedes einen -Befehl zu definieren, der dem Einfügen gewidmet ist, und diesen Befehl an a binden einfache Tastenfolge.
Das heißt, was @abo-abo und @Iqbal Ihnen in Form von:
angeboten haben %Vor% Wenn Sie mehrere Zeichen haben, für die Sie solche Befehle erstellen möchten, dann
Bibliothek ucs-cmds.el
kann helfen - auf zwei Arten :
Es bietet ein Makro , ucsc-make-commands
, mit dem Sie auf einen Schlag Befehle für ganze Bereiche von Unicode-Zeichen definieren können. Zum Beispiel:
(ucsc-make-commands "^cjk")
definiert einen insert-char-Befehl für jedes chinesische, japanische und koreanische Unicode-Zeichen.
(ucsc-make-commands "^greek [a-z]+ letter")
macht dasselbe für jeden griechischen Buchstaben.
(ucsc-make-commands "arabic")
macht dasselbe für jedes arabische Zeichen.
Er liefert einen Ersatz Befehl ( ucsc-insert
) für C-x 8 RET
, der genauso funktioniert wie der vanilla Befehl ( insert-char
), außer dass Sie a negatives Präfix-Argument fügt dann nicht nur das von Ihnen ausgewählte Zeichen ein, sondern es erstellt auch einen Einfügebefehl (dh die Art von Befehl, den das Makro in großen Mengen erzeugt).
Die Namen der Befehle, die mit dem Makro ucsc-make-commands
und dem Befehl ucsc-insert
erstellt wurden, sind genau dieselben wie die Unicode-Namen der Zeichen selbst, außer dass sie Kleinbuchstaben sind und Bindestriche ( -
) anstelle von Leerzeichen enthalten .