Ответ 1
Вы можете сделать это с помощью этого:
/Fish/e
/e
на конце помещает ваш курсор в конец области поиска (вместо первого символа по умолчанию.
Есть ли в Vim/Vi команды для перемещения в выбранном сегменте поиска?
Например, если я ищу слово, есть ли какие-либо команды для перемещения курсора в конец выделенного сегмента? Скажем, у меня есть слово "FishTaco", и я хочу искать все экземпляры "Рыба" и вставлять что-то после него. Я знаю, что могу сделать глобальную замену, но что, если я хочу только внести изменения в пару несекретных экземпляров?
Я мог видеть, где было бы удобно перемещать курсор в конец текущего выделенного сегмента для выполнения действия.
Вы можете сделать это с помощью этого:
/Fish/e
/e
на конце помещает ваш курсор в конец области поиска (вместо первого символа по умолчанию.
Если вы просто хотите поместить курсор после последнего символа Fish, вы можете использовать
/Fish/e+1
который поместит ваш курсор после h. (Без +1
курсор закончится слева от последнего символа.)
Если вам особенно интересно разместить курсор после Fish, но только когда он появится в "FishTaco", вы можете попробовать один из следующих вариантов:
Вы можете использовать
/FishTaco/s+4
и ваш курсор окажется между Fish и Taco. /s+4
помещает курсор на 4 места после начала поискового запроса.
Вы также можете использовать
/FishTaco/e-3
который поместит курсор на 3 места слева от левой части последнего (конечного) символа.
Вы также можете использовать
/FishTaco/b+4
потому что /b+4
будет считаться /s+4
.
Если вы уже искали /Fish
, вы можете быстро изменить поиск, чтобы перейти к концу матча через //e
, который повторяет последний поиск, но добавляет модификатор e
, который уже был объяснен.
Как только у вас есть визуальный выбор, вы можете использовать o
для переключения положения курсора между началом и концом выбранного блока. Когда выбор по очереди, это переключает позицию линии, то есть курсор перемещается в начальную и конечную строки выделения, но не на начальный или конечный символ. Когда выбор является характерным, тогда движение также характерно.
Вы также можете использовать `<
и `>
для переключения курсора между началом и концом визуального блока, однако это влияет на сам выбор, поэтому он используется для reset или корректирует границы выбора.
Изменить: Ах, но для поиска подчеркивается, что это не сработает, потому что o
начнет установку строки. Я думаю, что поиск - это не то же самое, что визуальный выбор, извините:)
Ответ на "курсор в конце матча" уже задан.
Вы можете сделать :%s/Fish/FishTaco/c
. Это дает вам возможность подтвердить или отклонить каждую замену и пропустить весь бизнес "курсор в конце матча".
/ long-regexp1 \zs long-regexp2 /
.. курсор остановится в \zs, см. help\zs