偶尔我会将代码放入缺少右括号或括号的paredit-mode
缓冲区中。 paredit-mode
然后检测未闭合的表达式并尝试将错误的paren添加到错误的位置。当我将光标移动到我想要关闭的位置时,这是令人沮丧的,但我不能把它放在那里。我最终不得不关掉paredit-mode
。
以下是一个例子:
我只是猛拉了
[["https://github.com/aconbere/yesql.git"
"aea69ebd4a7788a66fc8689fea7e806f1463c347"]
但paredit-mode
在最后看到一个丢失的)
(红色)。当开口是一个支架时,我甚至不确定它为什么要使用紧密的parens。在该点键入]
使光标跳到最后并尝试填充红色paren。啜饮或bar don不会产生预期的效果,只需移动)
。
有没有办法解决此问题而不暂时禁用paredit-mode
?
答案 0 :(得分:9)
kill-region
(默认绑定到C-w
)和quoted-insert
(默认绑定到C-q
)不受paredit模式的影响。您可以使用这些键绑定删除区域或插入匹配的分隔符,从而绕过paredit规则。请记住,您也可以关闭paredit,清理一些东西,然后重新打开它。
答案 1 :(得分:4)
其他人已经提到引用插入C-q
。您还可以使用C-u DEL
或C-u C-d
来覆盖paredit DEL
和C-d
的正常均衡行为,以便进行单次删除:
(foo)|)
C-u DEL
(foo|)
答案 2 :(得分:1)
相信我。到目前为止,最简单的方法是粘贴一个括号或括号。
你可以这样做:
; ]
然后复制它
答案 3 :(得分:0)
如果有不平衡的括号,请导航到要放置平衡括号的字符位置,发出M-x quoted-insert
(默认绑定到C-q
),然后输入平衡括号。 quoted-insert
不会阻止发布括号。
与noisesmith说的不同。打开和关闭paredit不是一种选择:)