Vim - Команды для визуального выбора регулярного выражения?

Невозможно определить, как автоматически выбрать соответствие регулярного выражения в визуальном режиме.

Например, вручную, я мог бы найти слово

/word

Наносится курсор на первый символ слова "word".
Затем нажмите v, чтобы войти в визуальный режим, и нажмите llll, чтобы выбрать полное "слово".

Теперь я хочу сделать это с помощью макроса, и я не знаю длины совпадения раньше времени.

Я ожидал, что Vim автоматически определит некоторые встроенные метки в начале и конце текущего совпадения, чтобы я мог "им". Но я не мог найти никакой информации об этом.

Я хочу переназначить Ctrl+n на макрос, чтобы перейти к следующему совпадению и выбрать его в визуальном режиме, т.е. не просто выделить совпадение. (Параллельно, как n приведет вас к следующему совпадению.)

Если вам интересно, почему, это потому, что я хочу создавать складки на основе совпадений регулярных выражений (например, Ctrl+n, zf), но я уверен, что это будет полезно и в других случаях.

Ответ 1

:noremap <C-n> //s<CR>v//e+1<CR>

Редактировать резюме: was//e, но //e + 1 работал у меня (также выбран последний символ совпадения).

Ответ 2

//e возвращает вас к концу символа последнего поиска. Дополнительная информация -: help {offset}.

Вы можете найти, как восстановить старый буфер поиска здесь.

Ответ 3

В интересах людей, которые наткнулись на этот вопрос в будущем, vim теперь имеет встроенную функцию: gn (и ее близкий брат gn) перейдут к следующему (соответственно предыдущему) совпадению и визуально выберите его. Он также может использоваться как движение; например cgn перейдет к следующему совпадению и изменит его.