No tengo Emacs ahora para probar, pero imagino skip-syntax-forwardque haría eso.
wvxvw
1
Intenté (skip-syntax-forward "^\"")cuál puede saltar al siguiente símbolo de comillas dobles, pero no omite el símbolo de escape, por ejemplo, "¿cadena \" no se puede omitir? "
AhLeung
Respuestas:
9
M-C-f(o M-C-right) obligado a forward-sexphacer eso.
Le sugiero que pruebe todos los comandos de movimiento conocidos con el prefijo en M-C-lugar de C-.
También debe mencionar backward-sexpobligado a M-C-b.
Timm
@Timm Pensé que sería bastante obvio que uno intentara los comandos de movimiento con prefijo en M-Clugar de C-si lo supiera M-C-f. Bien, lo mencionaré en la respuesta.
Tobias
1
Parece eso forward-sexpy se backward-sexpdetiene en espacios en blanco dentro de una cadena citada?
AhLeung
1
Siempre tengo problemas para recordar los enlaces para forward-sexpy backward-sexp, y quería algo que funcionara más como lo %hace en el modo de comando de Vim. En algún momento, agregué esto a mi configuración (la cadena de documentación dice parens pero funciona para cualquier tipo de soporte o cita), y ahora estoy satisfecho:
;;; 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)
Proporciona una respuesta completa en tu publicación. Las respuestas de solo enlace están bien para comentarios, pero no para respuestas.
Dan
sp-beginning-of-sexpy sp-end-of-sexpestoy muy cerca de lo que quiero Espero que se puedan combinar en una función (por ejemplo, sp-matching-sexp) para que solo necesite recordar una combinación de teclas. Tal vez intentaré escribir una función elisp. Avísame si alguien hizo eso antes. Gracias.
skip-syntax-forward
que haría eso.(skip-syntax-forward "^\"")
cuál puede saltar al siguiente símbolo de comillas dobles, pero no omite el símbolo de escape, por ejemplo, "¿cadena \" no se puede omitir? "Respuestas:
M-C-f(o M-C-right) obligado a
forward-sexp
hacer eso.Le sugiero que pruebe todos los comandos de movimiento conocidos con el prefijo en
M-C-
lugar deC-
.backward-sexp
backward-up-list
forward-list
fuente
backward-sexp
obligado aM-C-b
.M-C
lugar deC-
si lo supieraM-C-f
. Bien, lo mencionaré en la respuesta.forward-sexp
y sebackward-sexp
detiene en espacios en blanco dentro de una cadena citada?Siempre tengo problemas para recordar los enlaces para
forward-sexp
ybackward-sexp
, y quería algo que funcionara más como lo%
hace en el modo de comando de Vim. En algún momento, agregué esto a mi configuración (la cadena de documentación dice parens pero funciona para cualquier tipo de soporte o cita), y ahora estoy satisfecho:fuente
Sugiero usar el paquete smartparens para todos esos propósitos. Una breve introducción está aquí: https://ebzzry.io/en/emacs-pairs/ .
fuente
sp-beginning-of-sexp
ysp-end-of-sexp
estoy muy cerca de lo que quiero Espero que se puedan combinar en una función (por ejemplo,sp-matching-sexp
) para que solo necesite recordar una combinación de teclas. Tal vez intentaré escribir una función elisp. Avísame si alguien hizo eso antes. Gracias.