Ответ 1
:noremap <C-n> //s<CR>v//e+1<CR>
Редактировать резюме: was//e, но //e + 1 работал у меня (также выбран последний символ совпадения).
Невозможно определить, как автоматически выбрать соответствие регулярного выражения в визуальном режиме.
Например, вручную, я мог бы найти слово
/word
Наносится курсор на первый символ слова "word".
Затем нажмите v
, чтобы войти в визуальный режим, и нажмите llll
, чтобы выбрать полное "слово".
Теперь я хочу сделать это с помощью макроса, и я не знаю длины совпадения раньше времени.
Я ожидал, что Vim автоматически определит некоторые встроенные метки в начале и конце текущего совпадения, чтобы я мог "им". Но я не мог найти никакой информации об этом.
Я хочу переназначить Ctrl+n
на макрос, чтобы перейти к следующему совпадению и выбрать его в визуальном режиме, т.е. не просто выделить совпадение. (Параллельно, как n
приведет вас к следующему совпадению.)
Если вам интересно, почему, это потому, что я хочу создавать складки на основе совпадений регулярных выражений (например, Ctrl+n
, zf
), но я уверен, что это будет полезно и в других случаях.
:noremap <C-n> //s<CR>v//e+1<CR>
Редактировать резюме: was//e, но //e + 1 работал у меня (также выбран последний символ совпадения).
//e возвращает вас к концу символа последнего поиска. Дополнительная информация -: help {offset}.
Вы можете найти, как восстановить старый буфер поиска здесь.
В интересах людей, которые наткнулись на этот вопрос в будущем, vim теперь имеет встроенную функцию: gn
(и ее близкий брат gn
) перейдут к следующему (соответственно предыдущему) совпадению и визуально выберите его. Он также может использоваться как движение; например cgn
перейдет к следующему совпадению и изменит его.