Je n'ai pas Emacs maintenant pour essayer, mais j'imagine skip-syntax-forwardque ce serait le cas.
wvxvw
1
J'ai essayé (skip-syntax-forward "^\"")lequel peut passer au symbole de guillemet suivant, mais il ne saute pas le symbole échappé, par exemple, "string \" ne peut pas être ignoré? ".
AhLeung
Réponses:
9
M-C-f(ou M-C-right) obligé de le forward-sexpfaire.
Je vous suggère d'essayer toutes les commandes de mouvement bien connues avec le préfixe M-C-au lieu de C-.
Vous devez également mentionner backward-sexplié à M-C-b.
Timm
@Timm J'ai pensé qu'il serait plutôt évident que l'on essaie les commandes de mouvement avec préfixe M-Cau lieu de C-si l'on sait M-C-f. D'accord - je vais le mentionner dans la réponse.
Tobias
1
Il semble que forward-sexpet backward-sexps'arrêter aux espaces blancs à l'intérieur d'une chaîne entre guillemets?
AhLeung
1
J'ai toujours du mal à me souvenir des liaisons pour forward-sexpet backward-sexp, et je voulais quelque chose qui fonctionnait plus comme le %fait le mode de commande de Vim. À un moment donné, j'ai ajouté cela à ma configuration (la docstring dit parens mais cela fonctionne pour n'importe quelle sorte de support ou de citation), et maintenant je suis satisfait:
;;; 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)
Veuillez fournir une réponse complète dans votre message. Les réponses en lien uniquement sont acceptables pour les commentaires, mais pas pour les réponses.
Dan
sp-beginning-of-sexpet sp-end-of-sexpsont très proches de ce que je veux. J'espère qu'ils peuvent être combinés en une seule fonction (par exemple, sp-matching-sexp) de sorte que je n'ai besoin que de me souvenir d'un raccourci clavier. J'essaierai peut-être d'écrire une fonction elisp. Faites-moi savoir si quelqu'un l'a déjà fait. Merci.
AhLeung
ebzzry.io/en/emacs-pairs/#keys ("CMf". sp-forward-sexp) ("CMb". sp-backward-sexp) Mais vous pouvez le définir différemment
skip-syntax-forward
que ce serait le cas.(skip-syntax-forward "^\"")
lequel peut passer au symbole de guillemet suivant, mais il ne saute pas le symbole échappé, par exemple, "string \" ne peut pas être ignoré? ".Réponses:
M-C-f(ou M-C-right) obligé de le
forward-sexp
faire.Je vous suggère d'essayer toutes les commandes de mouvement bien connues avec le préfixe
M-C-
au lieu deC-
.backward-sexp
backward-up-list
forward-list
la source
backward-sexp
lié àM-C-b
.M-C
au lieu deC-
si l'on saitM-C-f
. D'accord - je vais le mentionner dans la réponse.forward-sexp
etbackward-sexp
s'arrêter aux espaces blancs à l'intérieur d'une chaîne entre guillemets?J'ai toujours du mal à me souvenir des liaisons pour
forward-sexp
etbackward-sexp
, et je voulais quelque chose qui fonctionnait plus comme le%
fait le mode de commande de Vim. À un moment donné, j'ai ajouté cela à ma configuration (la docstring dit parens mais cela fonctionne pour n'importe quelle sorte de support ou de citation), et maintenant je suis satisfait:la source
Je suggère d'utiliser le package smartparens à toutes ces fins. La brève introduction est ici: https://ebzzry.io/en/emacs-pairs/ .
la source
sp-beginning-of-sexp
etsp-end-of-sexp
sont très proches de ce que je veux. J'espère qu'ils peuvent être combinés en une seule fonction (par exemple,sp-matching-sexp
) de sorte que je n'ai besoin que de me souvenir d'un raccourci clavier. J'essaierai peut-être d'écrire une fonction elisp. Faites-moi savoir si quelqu'un l'a déjà fait. Merci.