2009-04-05 9 views
7

Wie macht man M- (das Standardverhalten für die Eingabe einer Öffnung "("? ")? Ich möchte Emacs automatisch das Schließen einfügen") "nach dem Cursor, wenn ich ein "(" - Zeichen eintippe, unabhängig davon, ob es Teil einer M-Tastenkombination ist. Zusätzlich möchte ich dieses Verhalten auf Anführungszeichen, Unterausdrücke, Klammern und geschweifte Klammern erweitern. Typing M- (ist ein Schmerz, und da don ' t erscheinen alle vergleichbaren Formen für die anderen Zeichen.Making M- (das Standardverhalten in Emacs, wenn "(") eingegeben wird

Antwort

6

ich schreibe nicht viel elisp mich, aber das ist etwas, was ich jemand abgekupfert aus. Der Code geht in .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

Genau das, was ich gesucht habe, danke .. –

+0

Danke - ich tat es nicht Wissen über Skelett-Paar-auf-Wort. –

3

"(" ist an self-insert-command gebunden, während M - '(' ist insert-parenthesis. Sie können das Reverse einfach durch global-set-key oder define-key zu binden „(“ zu insert-parenthesis verwenden.

5

Check out paredit.el die, wie Sie ausgewogene Pars/Klammern/zitiert halten wollen, und tut bietet auch viele andere Funktionen mit s-exp zu unterstützen Wenn Sie Lisp-Code schreiben (wie Ihr Name schon sagt), werden Sie wahrscheinlich diese Bibliothek eventuell verwenden wollen

Verwandte Themen