2012-01-06 3 views
6

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

ответ

4

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

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

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

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

2

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

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

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

Смежные вопросы