Является ли это возможным? Абсолютно! Случай и точка: textobj-word-column.vim .
Как сделать свои собственные текстовые объекты
Обычно визуальный режим используется для создания нового текстового объекта. Визуальный режим может быть линейным, символьным (обычно) или визуальным блоком. Вот основы того, что вам нужно:
- Неиспользованная комбинация клавиш обычно
a{char}
или i{char}
где {char}
является и описательной и неиспользованной. например, i/
в качестве примера текстового объекта между /
's.
- Нужен способ найти начало вашего текстового объекта. например
T/
- Нужен способ найти конец вашего текстового объекта. например
t/
- Выберите визуальный режим. например
v
- Создать визуальный режим (только) сопоставления через
xnoremap
.
- Создайте отображение режима ожидания оператора, которое использует визуальное отображение режима через
onoremap
и :normal
.
Теперь для примера нашего простого, i/
который создает текстовый объект между /
's:
xnoremap i/ :<c-u>normal! T/vt/<cr>
onoremap i/ :normal vi/<cr>
Пока вы следуете основным компонентам, вы можете создавать текстовые объекты для всех видов вещей.
Расширенное создание текстовых объектов с помощью vim-textobj-user
ВИМ-textobj пользователь плагин обеспечивает общий способ определения пользовательских текстовых объектов в более декларативной форме. Например, вот текстовый объект тега php:
call textobj#user#plugin('php', {
\ 'code': {
\ 'pattern': ['<?php\>', '?>'],
\ 'select-a': 'aP',
\ 'select-i': 'iP',
\ },
\ })
Для получения дополнительной помощи с ВИМ-textobj пользователю увидеть его помощь документ: :h textobj-user-introduction
.
Для получения дополнительной помощи
:h map-overview
:h visual-start
:h :norm
А также вики-страница Создание новых текстовых объектов Vim.