Задать диапазон с помощью визуального выбора можно, но когда есть очень простые операции с парой строк, которые могут быть выбраны оператором, лучше всего применять эти команды в качестве операторов.
К сожалению, этого нельзя сделать с помощью стандартных команд vim. Вы можете сделать своего рода обходной путь, используя! (фильтр) оператор и любой текстовый объект. Например, чтобы применить операцию к абзацу, вы можете сделать:
!ip
Это должно читаться как «Применить оператор! Внутри абзаца». Оператор фильтра запускает командный режим и автоматически вставляет диапазон строк, за которым следует буква "!" что вы можете удалить сразу после. Если вы примените это, к следующему абзацу:
1
2 Repellendus qui velit vel ullam!
3 ipsam sint modi! velit ipsam sint
4 modi! Debitis dolorum distinctio
5 mollitia vel ullam! Repellendus qui
6 Debitis dolorum distinctio mollitia
7 vel ullam! ipsam
8
9 More text around here
Результат после нажатия "! Ap" будет выглядеть так:
:.,.+5
Как "." (точка) означает текущую строку, диапазон между текущей строкой и пятью строками после будет использоваться для операции. Теперь вы можете добавить команду замены тем же способом, что и ранее.
Плохая часть в том, что это не проще, чем выбирать текст для последующего применения оператора. Хорошая часть заключается в том, что это может повторить вставку диапазона для других похожих текстовых диапазонов (в данном случае, абзацев) с заметно отличающимся размером. Т.е., если позже вы захотите выбрать диапазон большего абзаца, то '.' будет ли это правильно.
Также, если вам нравится идея использования семантических текстовых объектов для выбора диапазона операций, вы можете проверить мой плагин
EXtend.vim, который может делать то же самое, но более простым способом.