Заворачивать скобки вокруг текста? - PullRequest
6 голосов
/ 07 января 2012

При использовании 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)

Ответы [ 2 ]

4 голосов
/ 07 января 2012

Вы не упомянули, в каком редакторе вы работаете. В любом случае, если вы просто вводите открывающую скобку, то сразу же добавляется и ее закрывающая пара. Чтобы заключить выражение в скобки, вам нужно использовать функцию «wrap».

В emacs это может быть paredit-wrap-round или M-(, пожалуйста, найдите emacs paredit * здесь .

В vim с использованием slimv это ,W (если сначала выбрать выражение, тогда будет упаковано все выражение).

Если вам случится обернуть неправильное количество элементов, вы можете переместить их в / из s-выражения (см. «Slurp» и «barf» для emacs), или вы можете переместить скобки (,< или ,> для vim).

2 голосов
/ 13 июня 2013

Введите C-u ( вместо (, чтобы обернуть все вокруг, начиная с точки, или M-3 ( (или M-3 M-(), чтобы обернуть вокруг следующих трех S-выражений.

Кроме того, вы можете отметить регион, который вы хотите заключить в скобки, а затем введите (.

Другая альтернатива - набрать (, а затем нажать M-), чтобы выпить желаемый термин за термином.

...