Перфоминг Vim на частичную линию

Мы можем выполнить замену vim для набора строк, выбрав их в визуальном режиме и войдя в командный режим. он автоматически заполняет выбранный диапазон
:'<,'>

и мы можем выполнить замену, как:'<,'>s / TestSubstitute // gc

Я хотел бы знать, возможно ли в vim выполнить команду замены на частичной строке, выбранной в визуальном режиме, так что-то вроде

: `<,` `> [сопровождается командой замены]

Как правило, я скопирую набор имен полей, разделенных разделителем "," в vim, и хотел бы рассчитать количество столбцов, которое можно определить по количеству появлений запятых после выбора всех имен полей в визуальном режиме.

выберите fname, lastmodtime, lastaccesstime из fileInfo;

Если я выберу текст от fname до lastaccesstime в визуальном режиме и хотел бы узнать количество запятых в выделенном тексте.

Заранее спасибо,
Нага Киран

1 ответ

Решение

Использование \%V модификатор в шаблонном выражении. Это заставит vim совпадать только в пределах визуального блока, в котором вы находитесь или находились ранее. Используйте модификатор как это:

:s/\%Vpattern/substitution/

В визуальном режиме это будет показано как:

:'<,'>s/\%Vpattern/substitution/
Другие вопросы по тегам