Подтвердить что ты не робот

Поиск и замена vim ограничены подсветкой в ​​режиме визуального блока

У меня часто есть текст в столбцах и вам нужно заменить некоторые вещи, не сбивая похожие вещи на одной строке... Ниже приведен простой пример:

vim visual block-mode screenshot

Предположим, я выделил текст серым цветом с помощью визуального блочного режима vim и хочу заменить 80 на 81; однако, я хочу только замены в выделенном визуальном блоке.

Я уже пробовал Cntl v : s/80/81/g; однако это заменяет текст внутри и снаружи визуального блока. (на основе обратной связи Рэнди, потому что : s является командной строкой).

Я знаю, что в этом конкретном случае я мог бы использовать визуальный блок визуального отображения в виде строки (Shift v : s/80\.1/81.1/g); Тем не менее, я пытаюсь найти общее решение проблемы отсутствия простых средств для замены в нестандартном визуальном блоке (разве это не проблема, с которой должен решаться визуальный блок-режим?). Ответы, требующие подтверждения типа : s/80/81/gc, не являются тем, что я ищу.

Я повторю вопрос для ясности: как заменить 80 на 81 с помощью выделения vim visual block mode?

4b9b3361

Ответ 1

Вам нужно добавить \%V к вашему шаблону. От :help \%V:

Match inside the Visual area.  When Visual mode has already been
stopped match in the area that gv would reselect.
This is a /zero-width match.  To make sure the whole pattern is
inside the Visual area put it at the start and end of the pattern.

OP EDIT: явное решение заключается в использовании : s/\%V8\%V0/81/g

Ответ 2

Решение, очевидно, является\%V-выражением, но обратите внимание, что это все еще немного багги.

Обновить. Это не ошибка. Этот поток объясняет поведение.