Как вернуть первый символ в конец предыдущей строки с помощью Vim - PullRequest
0 голосов
/ 28 мая 2020

У меня есть следующий код:

mapping make_episode(string series, string title, string episode, array date)
{
    return ([ "series":series, "episode":episode, "title":title, "date":date ]);
}

void print_episode(mapping episode)
{
    write("  %-30s %10s %-30s (%{%d.%})\n", 
          episode->series, episode->episode, episode->title, episode->date);
}

Я хочу, чтобы все «{» (открывающие фигурные скобки) в начале строк были перемещены в конец предыдущих строк.

Я искал его на net, но не нашел.

Какую команду я даю в Vim для выполнения вышеуказанной задачи (перемещение всех таких символов в один go)?

Ответы [ 2 ]

2 голосов
/ 28 мая 2020

Вы можете сопоставить интересующие строки с помощью :global, а затем соединить их с помощью :join

g/^{$/-join

(используйте join!, если вам не нужно дополнительное пространство).

Кому go пошагово:

g/.../...     ----> for every line matching regex do a command
 /^{$/        ----> regex: single left brace on a line
      -join   ----> join previous line with the next one (i.e. the currently matched line)
0 голосов
/ 28 мая 2020

Можно использовать J - обратите внимание, заглавная (со сдвигом).

...