Ich habe jetzt keinen Emacs zum Ausprobieren, aber ich würde mir vorstellen skip-syntax-forward, dass ich das tun würde.
wvxvw
1
Ich habe versucht, (skip-syntax-forward "^\"")welches zum nächsten doppelten Anführungszeichen springen kann, aber es überspringt kein maskiertes Symbol, z. B. "Zeichenfolge \" kann nicht übersprungen werden? "
AhLeung
Antworten:
9
M-C-f(oder M-C-right) verpflichtet, forward-sexpdas zu tun.
Ich schlage vor, Sie versuchen alle bekannten Bewegungsbefehle mit dem Präfix M-C-anstelle von C-.
Sie sollten auch backward-sexpgebunden erwähnen M-C-b.
Timm
@Timm Ich dachte, es wäre ziemlich offensichtlich, dass man die Bewegungsbefehle mit Präfix versucht, M-Canstatt C-wenn man es weiß M-C-f. Okay - ich werde es in der Antwort erwähnen.
Tobias
1
Es scheint, forward-sexpund backward-sexpbei Leerzeichen in einer Zeichenfolge in Anführungszeichen zu stoppen?
AhLeung
1
Ich habe immer Probleme, mich an die Bindungen für forward-sexpund zu erinnern backward-sexp, und ich wollte etwas, das mehr wie %im Befehlsmodus von Vim funktioniert. Irgendwann habe ich dies zu meiner Konfiguration hinzugefügt (die Dokumentzeichenfolge sagt parens, aber es funktioniert für jede Art von Klammer oder Zitat), und jetzt bin ich zufrieden:
;;; PAREN-BOUNCE
;;;; originally ganked from <http://elfs.livejournal.com/1216037.html>
(defun genehack/paren-bounce ()
"Bounce from one paren to the matching paren."
(interactive)
(let ((prev-char (char-to-string (preceding-char)))
(next-char (char-to-string (following-char))))
(cond ((string-match "[[{(<\"']" next-char) (forward-sexp 1))
((string-match "[\]})>\"']" prev-char) (backward-sexp 1))
(t (error "%s" "Not an expression boundary.")))))
;;;; bindings
(global-set-key (kbd "C-%") 'genehack/paren-bounce)
(global-set-key (kbd "C-5") 'genehack/paren-bounce)
Bitte geben Sie eine vollständige Antwort in Ihrem Beitrag. Nur-Link-Antworten sind für Kommentare in Ordnung, nicht jedoch für Antworten.
Dan
sp-beginning-of-sexpund sp-end-of-sexpsind sehr nah an dem, was ich will. Ich hoffe, dass sie zu einer Funktion (z. B. sp-matching-sexp) kombiniert werden können, sodass ich mich nur an eine Tastenkombination erinnern muss. Vielleicht werde ich versuchen, eine Elisp-Funktion zu schreiben. Lassen Sie mich wissen, ob das schon jemand gemacht hat. Vielen Dank.
skip-syntax-forward
, dass ich das tun würde.(skip-syntax-forward "^\"")
welches zum nächsten doppelten Anführungszeichen springen kann, aber es überspringt kein maskiertes Symbol, z. B. "Zeichenfolge \" kann nicht übersprungen werden? "Antworten:
M-C-f(oder M-C-right) verpflichtet,
forward-sexp
das zu tun.Ich schlage vor, Sie versuchen alle bekannten Bewegungsbefehle mit dem Präfix
M-C-
anstelle vonC-
.backward-sexp
backward-up-list
forward-list
quelle
backward-sexp
gebunden erwähnenM-C-b
.M-C
anstattC-
wenn man es weißM-C-f
. Okay - ich werde es in der Antwort erwähnen.forward-sexp
undbackward-sexp
bei Leerzeichen in einer Zeichenfolge in Anführungszeichen zu stoppen?Ich habe immer Probleme, mich an die Bindungen für
forward-sexp
und zu erinnernbackward-sexp
, und ich wollte etwas, das mehr wie%
im Befehlsmodus von Vim funktioniert. Irgendwann habe ich dies zu meiner Konfiguration hinzugefügt (die Dokumentzeichenfolge sagt parens, aber es funktioniert für jede Art von Klammer oder Zitat), und jetzt bin ich zufrieden:quelle
Ich schlage vor, das Smartparens-Paket für all diese Zwecke zu verwenden. Eine kurze Einführung finden Sie hier: https://ebzzry.io/en/emacs-pairs/ .
quelle
sp-beginning-of-sexp
undsp-end-of-sexp
sind sehr nah an dem, was ich will. Ich hoffe, dass sie zu einer Funktion (z. B.sp-matching-sexp
) kombiniert werden können, sodass ich mich nur an eine Tastenkombination erinnern muss. Vielleicht werde ich versuchen, eine Elisp-Funktion zu schreiben. Lassen Sie mich wissen, ob das schon jemand gemacht hat. Vielen Dank.