86 votes

Avec emacs, comment passer à l'appairage (équilibrage) des parenthèses

Lorsque le curseur se trouve sur une parenthèse, comment passer à la parenthèse correspondante ? Il est bon de travailler dans emacs -nw .

Tout comme % dans Vim.

Après avoir reçu des conseils de @Lindy, @Francesco, j'en ai trouvé d'autres :

  C-M-f     Move forward over a balanced expression
  C-M-b     Move backward over a balanced expression
  C-M-k     Kill balanced expression forward
  C-M-SPC   put the mark at the end of the sexp.
  C-M-n  Move forward over a parenthetical group 
  C-M-p  Move backward over a parenthetical group 
  ;; C-M key binding can also be done by --> ESC Control-key

  ;;And put this to .emacs, it will highlight opening/closing parens:
  (show-paren-mode 1)

79voto

Lindydancer Points 13353

Utilisez C-M-right y C-M-left (respectivement backward-sexp y forward-sexp ) pour aller au début ou à la fin de l'expression en cours. Cela fonctionne pour les paires de parenthèses mais aussi pour les mots simples.

33voto

Buzz Points 358

Comme mentionné dans le wiki d'emacs ( http://www.emacswiki.org/emacs/NavigatingParentheses ):

  • C-M-n forward-list Avancer sur un groupe de parenthèses

  • C-M-p backward-list Déplacement en arrière sur un groupe de parenthèses

  • C-M-f forward-sexp Avancer sur une expression équilibrée

  • C-M-b backward-sexp Déplacement en arrière sur une expression équilibrée

  • C-M-k kill-sexp Tue l'expression équilibrée en avant

  • C-M-SPC mark-sexp Place la marque à la fin du sexp.

https://superuser.com/questions/677516/how-do-i-jump-to-the-opening-or-closing-paren-brace-in-emacs

24voto

Jorge Zapata Points 1022

Pour les parenthèses, les accolades et les parenthèses, il suffit de double clic sur eux fait l'affaire.

9voto

ychaouche Points 1025

Je suggère C-M-f et C-M-b, car C-M-droit/gauche sont déjà liés à mon DE (passage au bureau à droite/gauche).

5voto

EmacsFodder Points 12284

Je recommande vivement SmartParens Il dispose d'une navigation et d'une manipulation étendues des structures parenthétiques (c'est-à-dire l'habillage, les guillemets, les balises, les parenthèses, les accolades, les parenthèses ordinaires, les sexp, etc.). Il prend en charge de nombreuses langues et structures, avec une personnalisation facile.

Il prend également en charge des structures assez complexes, qui sont appelées hybrid-s-expressions dans sa documentation . Ce qui le rend extrêmement puissant pour la manipulation de code dans des langages tels que C/C++, Java, JS, etc.

Para navigation les éléments suivants sont utilisés.

sp-forward-sexp (&optional arg)                 ;; C-M-f
sp-backward-sexp (&optional arg)                ;; C-M-b
sp-down-sexp (&optional arg)                    ;; C-M-d
sp-backward-down-sexp (&optional arg)           ;; C-M-a
sp-up-sexp (&optional arg)                      ;; C-M-e
sp-backward-up-sexp (&optional arg)             ;; C-M-u
sp-next-sexp (&optional arg)                    ;; C-M-n
sp-previous-sexp (&optional arg)                ;; C-M-p
sp-beginning-of-sexp (&optional arg)            ;; C-S-d
sp-end-of-sexp (&optional arg)                  ;; C-S-a
sp-beginning-of-next-sexp (&optional arg)       ;; none
sp-beginning-of-previous-sexp (&optional arg)   ;; none
sp-end-of-next-sexp (&optional arg)             ;; none
sp-end-of-previous-sexp (&optional arg)         ;; none

Notez qu'il fait correspondre de nombreuses commandes à leur équivalent par défaut dans Emacs. Lorsqu'il est installé, il suffit de parcourir ses fonctions (elles sont toutes précédées du préfixe sp- ) pour avoir une bonne idée de sa taille.

Il y a beaucoup plus que ça, je vous recommande de regarder regardez le wiki

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X