Скобки окружают его содержанием дополнительными скобками

У меня есть строки, которые я хочу преобразовать из

(variable=value)

в

((variable=value))

Как мне это сделать из командной строки vim?

3 ответа

Решение

Может быть, вы можете использовать следующую команду замены

:%s/(.*)/(&)/g

где

.* - all strings of characters of any length and
&  - the whole matched pattern

Одно из возможных решений (если у вас есть только этот шаблон в строке):

 :.s/.*/(&)

 .s ................... current line substitute
 .* ................... everything
 ( .................... open paren
 & .................... all pattern searched
 ) .................... close paren

Или же

 :norm! I(^[A)

OBS: символ ^[ должен быть набран с помощью Ctrl-vCtrl- [.

Не забывайте, что вы можете повторить последнюю команду : в текущей строке, набрав @: и в последующих строках @@,

В обычном режиме без плагинов вы можете сделать это (если шаблон не повторяется много):

ca( ................ start changing the pattern (text goes to default register ")
( .................. start typing open parenthesis
Ctrl-r" ............ insert default register 
) .................. close parenthesis

OBS: это действие можно повторить, набрав .

Обычно это делается с помощью плагина round.vim: сначала выберите блок с одиночными скобками с помощью va(, а затем окружить с другим набором Parens через S(,

Другие вопросы по тегам