VIM разбивает строку на несколько строк на основе разделителя - PullRequest
1 голос
/ 12 июля 2020

В vim есть эффективный способ разбить строку, например

a, b, c, d, e

на

a;
b;
c;
d;
e;

Ответы [ 2 ]

3 голосов
/ 13 июля 2020

Используйте команду :substitute (поиск и замена) в строке, заменяя глобально (все вхождения в строке) , на ;\r (конец строки):

:s/, /;\r/g

После последнего e нет , , поэтому нет ; после него. Добавьте его вручную.

Upd от @SergioAraujo из комментариев:

:s/, \|$/;\r/g

для поиска и замены , или конца строки.

1 голос
/ 13 июля 2020

Хотя следующий метод является более дорогим с точки зрения нажатия клавиш, он может быть более интуитивным и требовать немного меньше размышлений / планирования, что следует учитывать при разговоре об эффективности:

f,
cW;<CR><Esc>
;.
;.
;.
A;<Esc>

Или, используя :help gn:

/,<CR>
cgn;<CR><Esc>
.
.
.
A;<Esc>
...