Есть ли в Vim / Vi какие-либо команды для перемещения в пределах выбранного сегмента поиска?
Например, если я ищу слово, есть ли какие-нибудь команды для перемещения курсора в конец выделенного сегмента? Скажем, у меня есть слово «FishTaco», и я хочу найти все экземпляры «Fish» и вставить что-нибудь после него. Я знаю, что могу выполнить глобальную замену, но что, если я хочу внести изменения только в паре непоследовательных экземпляров?
Я мог видеть, где было бы удобно переместить курсор в конец текущего выделенного сегмента для выполнения действия.
Fish
наFishTaco
, вы могли бы сделать:%s/Fish\(Taco\)\@!/&Taco/
, что найдет все,Fish
за которыми еще не следуют,Taco
и заменит их наFishTaco
. Сочетает поиск с обратным просмотром вперед с заменой, которая включает совпавший термин, за которым следуетTaco
.