如何将 M-( 设为输入左括号 "(" 的默认行为?我希望在输入 "(" 时,Emacs 能够自动在光标后插入右括号 ")",无论它是否是 M 键组合的一部分。此外,我还想将这种行为扩展到引号、子引号、方括号和花括号中。输入 M-( 很麻烦,而其他字符似乎没有类似的形式。
如何将 M-( 设为输入左括号 "(" 的默认行为?我希望在输入 "(" 时,Emacs 能够自动在光标后插入右括号 ")",无论它是否是 M 键组合的一部分。此外,我还想将这种行为扩展到引号、子引号、方括号和花括号中。输入 M-( 很麻烦,而其他字符似乎没有类似的形式。
我自己不太写elisp,但这是我从别人那里学来的。这段代码需要放入你的.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表达式。如果您将编写Lisp代码(正如您的名称所示),那么您可能最终会想使用此库。
self-insert-command
绑定了"(",而M-'('绑定了insert-parenthesis
。您可以通过使用global-set-key
或define-key
将"("绑定到insert-parenthesis
来简单地反转它们的绑定关系。"