Редактирование vim - как редактировать выделенный сегмент поиска или конвертировать в визуальный блок - PullRequest
4 голосов
/ 08 сентября 2010

В vim, если у меня есть следующий текст:

привет там

Скажите, что я ищу ад в тексте выше.

/ ад

и нажмите n, чтобы перейти к следующему экземпляру.

hell o

ад теперь выделен вvim и мой курсор находится на «h».

Какой самый эффективный способ теперь восстановить / удалить выделенный текст.

Есть ли способ «вернуть назад до концавыделенный текст '?Или «создать визуальный блок из выделенного текста»?

Я знаю, что могу использовать% s / hell / what / gc для перехода в качестве альтернативы.

TIA Tom

Ответы [ 2 ]

8 голосов
/ 08 сентября 2010

y//e или d//e должны сделать свое дело.

:let @" = @/, даже если вы переместили курсор.

1 голос
/ 08 сентября 2010

Я не знаю о встроенном отображении ( Редактировать : но посмотрите ответ Люка Эрмитта ниже, поскольку это гораздо лучшее решение, чем мои тела Конец Редактировать ), но вы могли бы сделайте рывок или выберите пару сопоставлений:

nmap ,y y/<C-R>/\zs<CR>
nmap ,v v/<C-R>/<BS>\zs<CR>

Отображение ,y использует регистр '/' для получения последнего поиска по поисковому запросу, добавляет \zs, чтобы сделать точку поиска конечной, и рывок продолжается до этой точки. Отображение ,v делает визуальный выбор, но должно удалить последний символ поиска (с <BS>), чтобы завершить его в нужном месте.

Что бы это ни стоило, вы можете упростить предложенное вами %s/hell/whatever/gc, уточнив поиск с помощью /, а затем используя сокращенную форму:

/hell
:%s//whatever/gc

Это потому, что :s по умолчанию использует последний поисковый термин.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...