是否存在emacs智能括号匹配插件/配置?

时间:2015-05-03 20:12:32

标签: emacs elisp

在emacs中有一种模式,如果我输入(它就像so()那样自动关闭它,但如果我把它放在一个像这样的单词的前面(单词它不做()单词,但只是聪明地保持(单词?我试过smartparens和autopair无济于事,但也许我还没有正确配置它们?

2 个答案:

答案 0 :(得分:4)

使用带有保守配对的内置(版本24.something)electric-pair-mode

(setq-default electric-pair-inhibit-predicate 'electric-pair-conservative-inhibit)
(electric-pair-mode 1)

答案 1 :(得分:3)

对于编程,我发现paredit给了我所需要的一切。它保持了平衡。

输入左括号也将在点数后输入结束括号:

()

您可以使用一对新括号直接用点括起表达式:

Meta - (expr)

还有许多其他命令可以在前后交替使用和barf子表达式,交换表达式,在不同级别上移动等等,这些都保持了括号的平衡性。

例如,如果你有一些表达式(|表示点):

|expr1 expr0 expr2 expr3

-

(|expr1) expr0 expr2 expr3

控制 - -

(|expr1 expr0) expr2 expr3

控制 - -

(|expr1 expr0 expr2) expr3

- ˚F

(expr1| expr0 expr2) expr3

控制 - -

(expr0 expr1| expr2) expr3

控制 - {

expr0 (expr1| expr2) expr3

控制 - - û

expr0 |(expr1 expr2) expr3

控制 - - ˚F

expr0 (expr1 expr2) |expr3