удалить / переместить / восстановить несколько разделов vim - PullRequest
0 голосов
/ 24 мая 2018

Я знаю, что вы можете удалить, скажем, строки 34-40 с помощью :34,40d, но есть ли способ удалить, скажем, строки 34-40 И строки 43-45

что-то вроде :34,40(?)43,45d где (?) представляет символ, необходимый для сообщения vim И второго набора строк?

Спасибо

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Самый короткий путь - просто дублировать команду :d[elete] и объединить все команды в одной командной строке.Для изменяемых команд (например, :delete) необходимо начинать с конца, чтобы номера строк оставались действительными:

:43,45d|34,40d

С плагином

Мой Плагин PatternsOnText предоставляет (среди многих других) команду :RangeDo, которая упрощает обработку, поскольку она адаптирует диапазоны для мутаций и гарантирует, что каждая строка обрабатывается только один раз:

:RangeDo 34,40 43,45 d

Янки

С или без плагина, каждый отдельный диапазон по-прежнему приводит к отдельному вызову команды.Чтобы накапливать янки в одном регистре, вы должны использовать версию в верхнем регистре , которая добавляется (ко всем, кроме первого вызова):

:34,40yank a | 43,45yank A
:let @a = '' | RangeDo 34,40 43,45 yank A
0 голосов
/ 24 мая 2018

Нет подходящего встроенного способа сделать именно то, что вы хотите.

Но это достаточно простой ИМО:

:34,40d|43-45d

Есть еще один способ взглянуть на это.Если эти строки имеют pattern, вы можете сделать:

:g/pattern/d
...