Как выдернуть или удалить несколько строк в Vim, все в разных диапазонах?

0

Я видел пару вопросов о том, как дергать и удалять диапазон строк в Vim, например, от строки 5 до строки 10.

Тем не менее, я не нашел (в документации и поиске) о том, как восстановить / удалить в одной команде, например, строки 3, 5, 10 и 12.

Это возможно?

user35477
источник
Об этом спрашивали и отвечали на SO: stackoverflow.com/questions/1608204/multiple-selections-in-vim
benjifisher

Ответы:

2

Это возможно, но это не просто. Vim не поддерживает несколько диапазонов или несколько несмежных номеров строк. Увидеть

:help 10.3
:help :range

Вы можете указать линии, которые будут выдергиваться в шаблоне :g команда, хотя, используя атом номера строки. Увидеть

:help :g
:help /\%l

В случае вашего примера, следующее будет перетягивать эти строки в a регистр.

:g/\%3l\|\%5l\|\%10l\|\%12l/y A
garyjohn
источник
1
Обратите внимание, что для правильной работы регистр 'a' должен быть пустым. Простой способ сделать это - записать пустой макрос, нажав qaq в обычном режиме.
Ben