Ich schreibe (und schreibe) viele mathematische Formeln in LaTeX mit Emacs. Ich stoße häufig auf Situationen, in denen ich zwei übereinstimmende Klammern ändern möchte, um die Lesbarkeit zu verbessern. Mein Emacs ist so freundlich, mir das passende Trennzeichen zu zeigen, aber wie ändere ich es programmgesteuert?
Ändern Sie beispielsweise die äußeren Begrenzer auf einmal:
( (\sqrt{a} + b)^{-1} + c^{-1} )
zu
[ (\sqrt{a} + b)^{-1} + c^{-1} ]
latex
replace
balanced-parentheses
Mankka
quelle
quelle
\bigl(...\bigr)
in\Bigl(...\Bigr)
usw. ändern könnte .forward-sexp-function
(was vermutlich der TeX-Modus tut) oder er verwendet wirdscan-sexps
, um die mögliche Übereinstimmung zu finden. Im späteren Fall ist die Übereinstimmung nicht immer korrekt. Wenn Sie also nur übereinstimmende Trennzeichen suchen müssen, können Sie die Syntax des Zeichens unter Punkt überprüfen. Wenn$
ja, muss es eine Übereinstimmung haben, und Sie können verwendenforwad-sexp
, um zu seiner Übereinstimmung zu gelangen.Antworten:
Ich benutze den Code unten und binde
yf/replace-or-delete-pair
anM-D
.Anwendungsbeispiel: Mit Punkt auf
(
drücke ichM-D [
und das()
Paar wird zu einem[]
Paar. Wenn SieM-D RET
stattdessen drücken, wird das Paar entfernt.Dieser Code verwendet die Syntaxtabelle. Dies bedeutet, dass Sie für einige Paare den schließenden Paren selbst angeben müssen. zB im HTML-Modus,
()
kann<>
durch Schlagen ersetzt werdenM-D <
. In vielen Modi<>
wird jedoch kein Paar erkannt und esM-D <
wird "Weiß nicht, wie man <schließt" angezeigt. Sie können dann einfach tippen>
.quelle
Für diejenigen, die das Böse benutzen, können Sie das Böse-Surround verwenden, das Ihnen die
c s
Bewegung gibt (Veränderung, Surround).Für Ihr Beispiel tun Sie es einfach
c s ( [
(Bewegung, vom Parentyp zum Parentyp)quelle
ar-parentized2bracketed-atpt
würde die Aufgabe erledigen.Es kommt zusammen mit
ar-braced2parentized-atpt
und im Grunde allen jeweiligen Kombinationen.Holen Sie es sich von thingatpt-transform-delimited.el von
URL: https://github.com/andreas-roehler/thing-at-point-utils
Eine abstrahierte Befehlsklasse transformiert alle abgegrenzten Formen, zum Beispiel:
Diese Befehle werden im selben Repo von geliefert
thingatpt-transform-generic-delimited.el
quelle
Übereinstimmende Klammern werden mit angezeigt
show-paren-mode
. Der logische Ansatz besteht darin, die Funktion zum Ändern der Parens auf dieselbe zugrunde liegende Logik und Funktion zu stützen. Wenn übereinstimmende Parens hervorgehoben sind, können Sie dietoggle-parens
unten definierte Funktion aufrufen :quelle