【发布时间】:2009-04-05 05:51:01
【问题描述】:
如何使 M-( 成为键入开头“(”字符的默认行为?我希望 Emacs 在我键入“(”字符时自动在光标后插入结尾“)”,无论它是否属于M 键组合。另外,我想将此行为扩展到引号、子引号、方括号和大括号。键入 M-( 很痛苦,而且对于这些其他字符似乎没有任何可比的形式。
【问题讨论】:
标签: emacs
如何使 M-( 成为键入开头“(”字符的默认行为?我希望 Emacs 在我键入“(”字符时自动在光标后插入结尾“)”,无论它是否属于M 键组合。另外,我想将此行为扩展到引号、子引号、方括号和大括号。键入 M-( 很痛苦,而且对于这些其他字符似乎没有任何可比的形式。
【问题讨论】:
标签: emacs
我自己不会写太多省略号,但这是我抄袭别人的东西。代码进入您的 .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)
【讨论】:
查看paredit.el,它可以根据需要保持括号/大括号/引号平衡,并且还提供许多其他功能来协助 s-exp 操作。如果您要编写 Lisp 代码(正如您的名字所暗示的那样),您最终可能会想要使用这个库。
【讨论】:
"(" 绑定到 self-insert-command 而 M-'(' 是 insert-parenthesis。您可以简单地使用 global-set-key 或 define-key 将 "(" 绑定到 insert-parenthesis 来反转它。
【讨论】: