如何在Paredit模式下删除多余的括号?

40
我在Emacs中使用Paredit编辑Lisp代码。我如何删除我误输入的额外一对括号?Paredit不允许这样做,需要额外的命令。
((square 5))修改为(square 5)
4个回答

65

这被称为 paredit-splice-sexp ,快捷键是 M-s 。 请查看此处的paredit速查表。


4

了解barfage和slurpage。

您还可以安装“paredit-menu.el”,它提供了一个操作菜单,带有工具提示,显示其效果。

Paredit偶尔会让您陷入一种情况:最简单的方法是将其关闭,修复所有问题,然后再打开。但这样做值得一试。


1

如果我在插入额外的括号后意识到了多余的括号,我会调用撤销命令。如果我很久之后才发现多余的括号,那么有其他答案指定的paredit命令来修复它,但如果我不知道这些命令,那么我会将光标放在内部表单的某个位置,然后输入以下内容,前提是CUA模式已打开。

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

0

在存在任何元素时,paredit不允许我们删除括号。 我的技巧是剪切正确的代码并粘贴到相邻的其他位置。 这将留下额外的括号为空,现在我可以删除它了。 实际上,正确的方法是使用M-s重新缩进它。 相反,我们可以使用C-q (C-q }插入单个括号。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接