Эта исправленная версия работает для меня
:inoremap <F9> <Esc>:call searchpair('<!\[CDATA\[', '', ']]>', 'b')<CR>
v:<C-u>call searchpair('<!\[CDATA\[', '', ']]>')<CR>v`<o
(без разрывов в реальной жизни)
Трюки:
<CR>
для необходимых Ввод клавиш
<C-u>
для очистки диапазона в командной строке
v`
для повторного выбора в начале визуального выбора
o
для перемещения курсора в конец визуального выделения
Я удивлен, что это будет отображение режима вставки, я предполагаю, что у вас также есть сопоставления нормального режима.
Кстати, возможно, вас заинтересуют отображения режима operator pending
для «правильной» семантики текстовых объектов:
Редактировать Обновление в ответ на комментарий:
По-видимому, работает следующее (разумное использование \zs
и \ze
в шаблоне поиска). Возможно, вы захотите вернуться на одну позицию назад (добавьте <BS>
в конец сопоставления). Кроме того, к настоящему времени отображение типов operator-pending
кажется более привлекательным.
:inoremap <F9> <Esc>:call searchpair('<!\[CDATA\[\zs', '', '\ze]]>', 'b')<CR>
v:<C-u>call searchpair('<!\[CDATA\[\zs', '', '\ze]]>')<CR>v`<o
PS .: Возможно, вы захотите применить явный магический уровень (например, \V
) в своих шаблонах поиска