6

使用 paredit 时,如何在文本周围加上大括号?我已经多次使用 paredit,但我感到沮丧,因为它阻止了我做我想做的事。

例子:

(foo
    (bar 1 2 3)
    baz 1 2 3)

哎呀,baz 1 2 3应该像这样包装:

(foo
    (bar 1 2 3)
    (baz 1 2 3))

但不是... :

(foo
    (bar 1 2 3)
    () baz 1 2 3)
4

2 回答 2

4

您没有提到您正在使用的编辑器。无论如何,如果您只是输入一个左括号,那么它的右括号也会立即添加。为了将表达式包装在括号中,您需要使用“包装”函数。

在 emacs 中,这可以是,paredit-wrap-round或者,请在此处M-(找到 emacs paredit 备忘单。

在使用slimv的 vim 中,这是,W(如果您先选择一个表达式,则整个表达式将被包装)。

如果您碰巧包装了错误数量的元素,那么您可以将它们移入/移出 s 表达式(参见 emacs 的 'slurp' 和 'barf'),或者您可以移动括号(,<,>vim)。

于 2012-01-07T13:50:54.007 回答
2

键入C-u (而不是(使其从该点开始环绕所有内容,或M-3 ((或M-3 M-() 使其环绕接下来的三个 S 表达式。

或者,您可以标记要括起来的区域,然后键入(

另一种选择是键入(,然后M-)逐项输入您想要的内容。

于 2013-06-13T14:40:16.957 回答