Derzeit füge ich Unicode-Zeichen (hauptsächlich mathematische Symbole) mit der TeX-Eingabemethode ein. Dies ist umständlich, da ich für jeden Charakter Folgendes tun muss:
- Wechseln Sie zu TeX-Eingabemethode und drücken Sie
C-\
- Typ Latex Ausdruck wie
\Bbb{R}
oder\Leftrightarrow
Es gibt eine relativ kleine Teilmenge von Unicode-Zeichen (10-20), die ich ständig einfüge.
F: Gibt es eine Möglichkeit, Unicode-Zeichen mit wenigen (2-4) Tastenanschlägen einzufügen?
Antworten:
Sie können
abbrev-mode
damit Zeichenfolgen erstellen, die auf die gewünschten Unicode-Zeichen "erweitert" werden. In der folgendenabbrev
Tabelle werden beispielsweise Abkürzungen für die ersten drei Kleinbuchstaben des griechischen Alphabets definiert:Sie können dann anweisen
text-mode
(oder welche anderen Modi Sie möchten), Ihre Unicode-Tabelle zu erben:Wechseln Sie im Textmodus zu einem Puffer. Einschalten
abbrev-mode
. Geben Sieualpha
ein Nicht-Wort-Zeichen (Leerzeichen, Punkt usw.) ein und beobachten Sie, wie es auf α erweitert wird.quelle
Mit den elisp-Funktionen
global-set-key
und können Sie Ihre eigenen Tastenfolgen definierenlocal-set-key
. Dabei wird empfohlen, C-ceinen einzelnen Buchstaben für benutzerdefinierte Tastenfolgen zu verwenden. (Andernfalls können Sie möglicherweise Schlüsselsequenzen überschreiben, die an andere emacs-lisp-Bibliotheken gebunden sind. Später treten Probleme auf, wenn Sie feststellen, dass die Bibliotheksversion der Schlüsselsequenz für Sie sehr nützlich ist.)Wenn Sie diese Sequenzen unabhängig vom Hauptmodus verwenden möchten, können Sie sie global binden.
Als Beispiel können Sie hinzufügen
(global-set-key (kbd "C-c a") "⇔")
zu Ihrer Konfigurationsdatei
~/.emacs
.Alternativ können Sie diese Tasten je nach Hauptmodus verwenden.
Ein Beispiel ist:
Das funktioniert mit
auctex
. Wenn Sie die native verwendentex-mode
oderlatex-mode
es könnte sein , dass Sie ersetzen müssenTeX-mode-hook
durchtex-mode-hook
.Beachten Sie, dass es auch
insert-char
gebunden ist C-x 8 RET. Damit können Sie utf8-Zeichen eingeben, wenn Sie deren Code kennen. Wenn Sie den Code nicht kennen, können Sie sie anhand ihrer Beschreibung eingeben, dies wird jedoch umständlich.Es gibt auch spezielle Modi den Benutzer mit der Eingabe von Latex - Symbolen, wie Stütz-
company-math
-Mode undac-math
-Mode .Beide sind Abschlussmodi.
company
funktioniert mit Mausmenüs undac
(Autocomplete) funktioniert mit der tab-key.Über den aktuellen Status dieser Pakete bin ich mir jedoch nicht sicher. Sie können diese Modi per Melpa installieren, wenn Sie sie ausprobieren möchten.
quelle
C-c
besteht darin, dass Sie ziemlich sicher sein können, dass sie nicht mit Schlüsselbindungen von Emacs oder einer von Ihnen verwendeten Bibliothek in Konflikt steht.Sie sagen: Es gibt eine relativ kleine Teilmenge von Unicode-Zeichen (ich schätze 10-20), die ich ständig einfüge.
In diesem Fall können Sie, wie @Tobias angibt, für jeden von ihnen einfach eine einfache Tastenfolge an (a) einen Befehl binden, der dieses Zeichen einfügt, oder (b) eine einzelne Zeichenfolge mit diesem Zeichen (dies verhält sich wie folgt) ein Tastaturmakro zum Einfügen des Zeichens).
Die Bibliothek
ucs-cmds.el
kann Ihnen beim Definieren solcher Befehle helfen. Die resultierenden Befehle haben dieselben Namen wie die Zeichen. Sie können ein Makro verwendenucsc-make-commands
, um eine ganze Reihe von Befehlen zu definieren, die ein Zeichen einer bestimmten Art einfügen.Sie können dies beispielsweise in Ihre Init-Datei einfügen, um Befehle zu definieren, die alle mathematischen Unicode-Symbole einfügen:
Das gibt Ihnen Befehle, deren Namen mit den mathematischen Zeichen übereinstimmen. Binden Sie alle diese Tasten, die Sie häufig verwenden, an benutzerfreundliche Schlüssel. Zum Beispiel:
(Oder binden Sie einen Schlüssel nur im Tex-Modus an einen solchen Befehl, indem Sie ihn
define-key
mit seiner Keymap verwenden.)Mit diesem einfachen
(ucsc-make-commands "^math")
Befehl stehen Ihnen alle unten aufgeführten Befehle zum Einfügen von Zeichen zur Verfügung.Es gibt auch andere Unicode-Zeichen, deren Namen nicht mit beginnen
math
, die aber in der Mathematik verwendet werden - zum Beispiel ZeichenPARTIAL DIFFERENTIAL
. Sie können problemlos Befehle erstellen, die auch eines dieser Zeichen einfügen. (Beachten Sie, dass für die Zeichen, deren Namen beginnen,math
möglicherweise eine spezielle Schriftart erforderlich ist. Viele Schriftarten unterstützen sie nicht.)Sie können natürlich einen engeren regulären Ausdruck verwenden als
^math
, wenn Sie nur Zeichen definieren möchten, die einem solchen Muster entsprechen. Dies definiert beispielsweise Befehle für alle partiellen Differentialzeichen:Das gibt Ihnen diese Befehle:
Beachten Sie, dass die Unicode-Zeichennamen Wörter durch Leerzeichen trennen und die Namen in Großbuchstaben geschrieben sind. Die entsprechenden Einfügebefehle verwenden Bindestriche anstelle von Leerzeichen und Kleinbuchstaben anstelle von Großbuchstaben.
Ein Vorteil von Befehlen, die nach Zeichen benannt sind, die sie einfügen, anstatt beispielsweise nur Schlüssel an einzelne Zeichenfolgen der Zeichen zu binden, besteht darin, dass Sie
M-x
Zeichen, die Sie weniger häufig verwenden, nach Namen eingeben und vervollständigen können. Anstatt den gesamten Satz von Unicode-Zeichennamen zu vervollständigen, vervollständigen Sie die Namen der von Ihnen definierten Befehle zum Einfügen von Zeichen.Dies sind die Befehle, die Zeichen einfügen, deren Namen mit beginnen
math
. Sie sind das, was Sie durch die Bewertung erhalten(ucsc-make-commands "^math")
....
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
quelle