11

有时我将代码拉到paredit-mode缺少右括号或括号的缓冲区中。paredit-mode然后检测未闭合的表达式并尝试将缺少的括号添加到错误的位置。当我将光标移动到我想要关闭括号的点但我不能把它放在那里时,这令人沮丧。我最终不得不关掉paredit-mode

这是一个例子: 在此处输入图像描述

我刚抽

[["https://github.com/aconbere/yesql.git"
 "aea69ebd4a7788a66fc8689fea7e806f1463c347"]

但在最后paredit-mode看到一个缺失)(红色)。我什至不确定为什么当开口是括号时它要使用闭合括号。在该点键入]会使光标跳到末尾并尝试填写红色括号。啜饮或呕吐没有预期的效果,只是四处)走动。

有没有办法在不暂时禁用的情况下解决这个问题paredit-mode

4

4 回答 4

12

kill-region(默认绑定到C-w) 和quoted-insert(默认绑定到C-q) 不受 paredit 模式的影响。您可以使用这些键绑定删除区域或插入匹配的分隔符,绕过 paredit 规则。请记住,您也可以关闭 paredit,清理某些内容,然后重新打开它。

于 2014-10-08T02:29:24.390 回答
5

其他人已经提到C-q了引用插入。您还可以使用C-u DELorC-u C-d覆盖 paredit 的正常平衡行为DELC-d对于单个删除:

(foo)|) 铜德尔 (foo|)

于 2017-07-19T20:54:52.740 回答
3

相信我。到目前为止,最简单的方法是粘贴括号或圆括号。

你可以做:

    ;  ]

然后复制

于 2017-07-20T21:23:33.427 回答
0

当您有不平衡括号时,导航到您希望放置平衡括号的字符位置,发出M-x quoted-insert(默认绑定到C-q),然后输入平衡括号。 quoted-insert不会阻止发出括号。

与noisesmith相同的想法不同。打开和关闭 paredit 不是一种选择:)

于 2017-02-17T05:06:32.057 回答