2009-04-05 5 views
7

Comment faire M- (le comportement par défaut pour taper une ouverture "(" caractère? Je veux qu'Emacs insère automatiquement la fermeture ")" après le curseur lorsque je tape un caractère "(" indépendamment du fait qu'il fait partie d'une combinaison de touches M. De plus, je veux étendre ce comportement à des guillemets, des sous-citations, des accolades et des accolades. t semblent être des formes comparables pour les autres personnages.Faire M- (le comportement par défaut dans Emacs quand "(" est tapé

Répondre

6

Je ne vous écris pas beaucoup elisp moi-même, mais c'est quelque chose que je cribbed de quelqu'un. Le code va dans votre .emacs.

(setq skeleton-pair t) 
(setq skeleton-pair-on-word t) ; apply skeleton trick even in front of a word.            
(global-set-key "[" 'skeleton-pair-insert-maybe) 
(global-set-key "{" 'skeleton-pair-insert-maybe) 
(global-set-key "(" 'skeleton-pair-insert-maybe) 
(global-set-key "\"" 'skeleton-pair-insert-maybe) 
+0

C'est exactement ce que je cherchais, merci –

+0

Merci - je n'ai pas connaître squelette-pair-sur-mot. –

3

"(" est lié à self-insert-command tandis que M - '(' est insert-parenthesis. Vous pouvez inverser cette tendance en utilisant simplement global-set-key ou define-key pour lier « (» à insert-parenthesis.

5

Check out paredit.el qui maintient parens/accolades/devis équilibré que vous le souhaitez, et fait aussi offre de nombreuses autres fonctionnalités pour aider à s-exp Si vous allez écrire du code Lisp (comme votre nom l'indique), vous voudrez probablement utiliser cette bibliothèque par la suite

Questions connexes