Avec emacs, comment accéder aux parenthèses d’appariement

Lorsque vous placez le curseur sur une parenthèse, comment passer aux parenthèses d’appariement. Bon à travailler dans emacs -nw .

Tout comme % dans Vim.

;; Après avoir eu un indice de @Lindy, @Francesco, j’ai trouvé plus:

CMf Move forward over a balanced expression CMb Move backward over a balanced expression CMk Kill balanced expression forward CM-SPC put the mark at the end of the sexp. CMn Move forward over a parenthetical group CMp Move backward over a parenthetical group ;; CM 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) 

Utilisez CM-right et CM-left (respectivement backward-sexp et 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.

Pour les parenthèses, les accolades et les crochets, il suffit de double-cliquer dessus.

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

  • CMn avant-liste Avancer sur un groupe entre parenthèses

  • CMp liste vers l’arrière Reculer d’ un groupe entre parenthèses

  • CMf forward-sexp Avancer sur une expression équilibrée

  • CMb backward-sexp Reculer sur une expression équilibrée

  • CMk kill-sexp Tue l’expression équilibrée en avant

  • CM-SPC mark-sexp Mettez la marque à la fin du sexp.

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

Je suggère que CMf et CMb, comme CM-droite / gauche sont déjà liés à mon DE (passer au bureau à droite / à gauche).

J’utilise la petite fonction suivante pour cela (bien que je ne sache pas si elle correspond ou non au comportement de vim; je ne suis pas utilisateur de vim moi-même):

 (defun mo-match-paren (arg) "Go to the matching parenthesis." (interactive "p") (cond ((looking-at "\\s\(") (forward-list 1) (backward-char 1)) ((looking-at "\\s\)") (forward-char 1) (backward-list 1)) (t (self-insert-command (or arg 1))))) 

Je recommande fortement SmartParens qui offre une navigation et une manipulation étendues des structures entre parenthèses (par exemple, enveloppement, guillemets, balises, parenthèses, accolades, parenthèses régulières, sexp, etc.).

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

Pour la navigation, les éléments suivants sont utilisés.

 sp-forward-sexp (&optional arg) ;; CMf sp-backward-sexp (&optional arg) ;; CMb sp-down-sexp (&optional arg) ;; CMd sp-backward-down-sexp (&optional arg) ;; CMa sp-up-sexp (&optional arg) ;; CMe sp-backward-up-sexp (&optional arg) ;; CMu sp-next-sexp (&optional arg) ;; CMn sp-previous-sexp (&optional arg) ;; CMp sp-beginning-of-sexp (&optional arg) ;; CSd sp-end-of-sexp (&optional arg) ;; CSa 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 mappe plusieurs commandes aux équivalents par défaut d’Emacs. Quand il est installé, il suffit de parcourir ses fonctions (elles sont toutes préfixées par sp- ) pour avoir une bonne sp- son échelle.

Il y a beaucoup plus à faire, je vous recommande de regarder le wiki