Wie kann ich electric-pair-mode
zu nicht Paar Anführungszeichen (einfach oder doppelt)? Ich möchte immer noch, dass alles andere (Klammern, Klammern usw.) gepaart wird, nur keine Anführungszeichen.
7
Wie kann ich electric-pair-mode
zu nicht Paar Anführungszeichen (einfach oder doppelt)? Ich möchte immer noch, dass alles andere (Klammern, Klammern usw.) gepaart wird, nur keine Anführungszeichen.
electric-pair-inhibit-predicate
?electric-pair-inhibit-predicate
Variable? Es ist meinen Emacs 24.3.1elec-pair.el
.electric-pair-mode
,electric-pair-pairs
undelectric-pair-text-pairs
ist individuell gestaltet werden verwendet, aberelectric-pair-text-syntax-table
hat Vorrang. Ein Hook, der diese Variablen lokal setzt, sollte ausreichen, damit dies funktioniert. Ich werde später prüfen, ob dies der Fall ist, und eine Antwort posten.Antworten:
Fügen Sie Ihrer Emacs-Init-Datei Folgendes hinzu:
Referenz aus meinem Blog-Beitrag: https://www.topbug.net/blog/2016/09/29/emacs-disable-certain-pairs-for-electric-pair-mode/
quelle
emacs -Q
(Emacs gestartet mit Befehlszeilenoption-Q
). Vielleicht stört ein anderes Paket. Der Code funktioniert für mich mit GNU Emacs 25.3.1 (x86_64-unknown-cygwin, GTK + Version 3.22.20) vom 11.09.2017.?\"
am Ende als gedruckt wird34
, liegt dies daran, dass das"
Zeichen mit der Ganzzahl identisch ist34
. In Emacs sind Zeichen positive ganze Zahlen eines bestimmten Bereichs.GNU Emacs 24.3.1 (x86_64-redhat-linux-gnu) of 2016-01-13
.Es scheint, dass Sie nicht können. Mit den verschiedenen Anpassungen können Sie nur Paare hinzufügen.
Wenn Sie bereit sind, ein anderes Paket für Ihre Paarung zu verwenden, können Sie smartparens ausprobieren . Sie können Anführungszeichen so festlegen, dass sie nicht wie folgt gekoppelt werden:
quelle
electric-pair
Blick : Wenn Sie eine schließende Klammer unmittelbar hinter dem Cursor haben (oder mit Leerzeichen dazwischen), wird durch Eingeben der öffnenden Klammer das vorhandene Schließen berücksichtigt Klammer. Insmartparens
wird immer eine neue schließende Klammer erstellt, es sei denn, Sie befinden sich im strengen Modus (der andere starke Nebenwirkungen hat). Zum Beispiel:|)
->(|)
inelectric-pair
versus|)
->(|))
in smartparens. Das Pipe-Symbol|
repräsentiert den Cursor.electric-pair
einer schließenden Klammer befinden, die vier Zeilen tiefer liegt und nur Leerzeichen zwischen Ihrem Cursor und der schließenden Klammer enthält, und diese schließende Klammer eingeben, wird die darunter liegende Klammer ersetzt, sodass sie bündig mit dem Cursor abschließt. Das passiert nur,smartparens
wenn Sie sich im strengen Modus befinden. Dies ist eine nette Abkürzung, wenn Sie etwas wie lisp (oder ehrlich gesagt sogar etwas wie Python) bearbeiten, da dies den kognitiven Aufwand für die Formatierung von S-Ausdrücken verringert. Es kann jedoch das Auswuchten von Zahnspangen verwirrender machen.electric-pair
erbt auch seine Paare von der Syntaxtabelle des aktuellen Modus, währendsmartparens
Sie in jedem Paar explizit programmieren müssen. Da könnte ich mich allerdings irren.Update: Die Antwort von @ xuhdev ist vorzuziehen, da sie den Emacs-Code nicht beeinträchtigt.
Könnte eine Feature-Anfrage wert sein, die anpassbar ist. Im Moment erscheint es trivial, den fraglichen Code zu ändern.
Laden Sie anschließend Ihre eigene Variante der Elektro-Paar-Post-Self-Insert-Funktion
Öffnen Sie elec-pair.el und kopieren Sie von dort
Dann schau in den Körper nach irgendwelchen
und löschen Sie die
?\"
von dort, dhaber nicht löschen? \ "an anderen Stellen (!)
und neu laden, dh die geänderte Funktion auswerten.
Um es bei der nächsten Sitzung neu zu laden, legen Sie es in eine Datei "my-changed-stuff.el" und laden Sie diese aus Ihrer Init-Datei.
quelle