使用paredit时如何在文本周围包裹大括号?我曾多次使用过paredit然而我感到沮丧,因为它阻止了我做我想做的事。
示例:
(foo
(bar 1 2 3)
baz 1 2 3)
Opps,baz 1 2 3
应该这样包裹:
(foo
(bar 1 2 3)
(baz 1 2 3))
但是,不......:
(foo
(bar 1 2 3)
() baz 1 2 3)
答案 0 :(得分:4)
你没有提到你正在做什么编辑。无论如何,如果你只是输入一个开头,那么它的结束对也会立即添加。为了将表达式包装在括号中,您需要使用'wrap'函数。
在emacs中,这可以是paredit-wrap-round
或M-(
,请找到emacs paredit cheatsheet here。
在使用slimv的vim中,这是,W
(如果先选择一个表达式,那么整个表达式将被包装)。
如果你碰巧包含了错误数量的元素,那么你可以将它们移入/移出s-expression(参见emac的'slurp'和'barf'),或者你可以移动括号({{1} }或,<
for vim)。
答案 1 :(得分:2)
键入C-u (
而不是(
,使其从点开始包围所有内容,或M-3 (
(或M-3 M-(
)以使其环绕下一个三个S -expressions。
或者,您可以标记要加括号的区域,然后键入(
。
另一种方法是键入(
,然后点击M-)
按照您的要求逐项填写。