Vim: вставка регулярных выражений в начало строки - PullRequest
2 голосов
/ 14 января 2020

Недавно узнал про vim. У меня есть список строк, которые имеют вид

<title>-<course name>p.<optional space><part number><extra text>.mp4

Я хочу получить имя детали в начале файла, то есть он должен выглядеть как

p.<part number><title>-<course name><extra text>.mp4

Я знаю, что это довольно просто сделать с помощью языка программирования, но я хотел знать, как я буду делать это в vim. Ниже этой строки находится то, к чему я пришел, но \ 1, похоже, не добавляет группу.

:g/\(p\.\s\=[0-9]*\)/s/^/\1

Я почти уверен, что регулярное выражение верно в зависимости от того, что оно выделяет, но просто хотел узнать, как я должен вставить его в начало каждой строки. Пример имени файла ниже, в случае, если мое объяснение не ясно:

titleofvideo -coursename p.13-44jq6ano5n0.mp4

Я хочу изменить его на

p.13-titleofvideo -coursename -44jq6ano5n0.mp4

1 Ответ

1 голос
/ 15 января 2020

@ L3viathan дает следующую рабочую команду в комментариях:

%substitute/\v(.*)(p\.\s?\d+)/\2-\1/

Причина, по которой команда OP не работает, заключается в том, что после s/^/ в предыдущем регулярном выражении нет группы (которая является теперь ^, а не шаблон global).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...