2010-11-30 3 views
26

Lorsque mon code ne parvient pas à se compiler et me dit que je manque probablement une accolade fermée, y at-il un moyen facile de le trouver dans emacs?Comment puis-je trouver des accolades/parens manquantes ou incompatibles dans emacs?

+2

On pourrait être également intéressé s'il y a une sorte de M-x fix-parens. – aartist

+0

bonne idée. J'ai posté la question ici: http://stackoverflow.com/questions/4328163/is-there-a-way-to-automate-fixing-mismatched-parens-in-emacs-mx-fix-parens –

Répondre

29

Pour des langages comme C, C++ et Java, la commande check-parens vérifiera parens (()), des supports ([]) et accolades ({}):

M-x check-parens <RET> 

Le point se déplacera à un personnage de bracketing cela est inégalé, et la ligne d'état signalera le problème.

C'est une bonne idée d'utiliser ceci en conjonction avec show-paren-mode comme d'autres l'ont dit.

4

Show Paren Mode mettra en évidence les mauvaises orthèses au fur et à mesure que vous les tapez. Je ne sais pas comment les trouver après le fait.

11

Si vous utilisez le code suivant dans vos .emacs, si vous êtes avant ou après un crochet, il mettra en évidence toute l'expression entre eux - peut vous aider à trouver des parenthèses incompatibles.

(show-paren-mode t) 
(setq show-paren-style 'expression) 
+1

caractéristique vraiment agréable - merci à vous et à @robert de le signaler! –

+1

Idem. belle fonctionnalité, merci de poster ceci. –

0

J'utilise le mode de package rainbow-delimiters exactement pour cette raison.

Mes paramètres:

(require 'rainbow-delimiters) 
(add-hook 'prog-mode-hook 'rainbow-delimiters-mode) 
(set-face-attribute 'rainbow-delimiters-unmatched-face nil 
      :foreground "red" 
      :inherit 'error 
      :box t)