如何在Paredit模式下删除额外的parens?

时间:2013-01-05 09:57:59

标签: emacs clojure lisp paredit

我在Emacs中使用Paredit来编辑Lisp代码。如何删除我意外插入的一对额外的parens?没有额外的命令,Paredit就不允许这样做。

((square 5))加入(square 5)

4 个答案:

答案 0 :(得分:51)

这称为paredit-splice-sexp,键绑定为M-s。 看一下paredit备忘单here

答案 1 :(得分:3)

阅读barfage和slurpage。

您还可以安装“paredit-menu.el”,它提供了一系列操作,工具提示会显示其效果。

Paredit偶尔会让你陷入困境,最简单的事情就是关闭它,修复所有东西并再次打开它。但是,这是值得的。

答案 2 :(得分:0)

如果我在插入那些额外的parens后立即意外地发现了额外的parens,我会调用undo命令。如果我稍后看到额外的parens,那么有paredit命令用于修复它作为指定的其他答案,但如果我不知道那些命令,那么我会在内部表单中的某处放置点,然后输入以下内容,提供CUA模式已开启。

C-M-u C-M-SPC C-x <timeout> <left> C-M-SPC C-v

答案 3 :(得分:0)

paredit 不会让我们在里面有任何元素时删除括号。我的诀窍是剪切正确的代码并将其粘贴到相邻的其他地方。它会将额外的括号留空,然后我可以删除它。实际上正确的方法是使用 M-s 重新缩进。相反,我们可以使用 C-q (C-q } 插入单个括号。