38

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

((square 5))进入(square 5)

4

4 回答 4

61

这就是所谓paredit-splice-sexp的,键绑定是M-s。看看这里的 paredit 备忘单。

于 2013-01-05T10:04:56.610 回答
3

阅读 barfage 和 slurpage。

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

Paredit 有时会让您陷入这样一种情况,最简单的方法就是将其关闭、修复所有问题并重新打开。然而,这是值得的。

于 2013-01-05T12:56:33.477 回答
1

如果我在插入这些额外的括号后立即意识到意外的额外括号,我会调用 undo 命令。如果我很晚才看到额外的括号,那么有 paredit 命令可以将其修复为指定的其他答案,但是如果我不知道这些命令,那么我会在内部表单中的某个位置放置点,然后键入以下内容,前提是CUA 模式已开启。

C-M-u C-M-SPC C-x <timeout> <left> C-M-SPC C-v
于 2014-07-16T11:53:56.380 回答
0

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

于 2021-04-22T09:58:23.800 回答