В vim возможно ли удалить первые N символов в каждой строке абзаца без использования визуального режима или многократного использования команды точка?

Перерабатывать

www.some_website.com
www.some_webiste2.com

в

some_website.com
some_webiste2.com

Без использования визуального режима или d4l j .?

Я думаю, мой вопрос также можно сформулировать так: «Есть ли оператор linewise для текстового объекта абзаца?"

2 ответа2

2

Выполнение подстановки для ряда строк, вероятно, является наиболее "Vim-подобным" решением.

Предполагая, что вы хотите работать над тем, что Vim считает абзацем:

:'{,'}s/^www\.

Если вам нравится считать персонажей:

:'{,'}s/.\{4}

Можно использовать и :normal:

:'{,'}norm! 4x

Смотрите :help navigation :help :normal :help \{ .

0

Помимо substitute и непосредственного использования normal команды, упомянутой в другом ответе, вы также можете повторить обычную команду (как d4l) в любом количестве строк, используя команду :global:

:g/^www/normal d4l

Объяснение:

  • :g/<patter>/ - выполнить в любой строке, которая соответствует <pattern> - . будет соответствовать всем непустым строкам, ^www\. будет соответствовать только тем, которые начинаются с URL
  • normal d4l - выполнить d4l в обычном режиме

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .