xnoremap il g_o0
onoremap il :normal vil<CR>
xnoremap al $o0
onoremap al :normal val<CR>
И грубый «буферный» текст-объект:
xnoremap i% GoggV
onoremap i% :normal vi%<CR>
---РЕДАКТИРОВАТЬ---
«Оператор» является командой , которая ничего не делает сам по себе: d, yи т.д.
Нажатие этих клавиш переводит вас в «режим ожидания оператора», где Vim ждет, пока вы не скажете ему, над чем вы хотите работать… с «движением в ожидании оператора».
Вы можете использовать :omapили :onoremapдля определения пользовательских движений, ожидающих оператора. Техника, используемая здесь, вдохновлена :help omap-info:
вы определяете отображение визуального режима, которое охватывает желаемую область,
Вы используете это отображение в отображении, ожидающем оператора.
Обратите внимание, что я использовал, :onoremapпотому что il, alи i%еще не существует. При переопределении существующего движения или текстовом объекта - скажем , ip- вы должны использовать рекурсивное отображение: :omap.
:help :map-operator описывает немного более продвинутый метод.
Прохладно. Не могли бы вы объяснить несколько моментов? Что такое o(режим ожидания оператора) в onoremap? Что делает oв визуальном режиме? Я бы предположил, что это «другая сторона», потому что она, кажется, переходит на другую сторону выбора ... Как я могу найти :hна нем? Я не могу найти это с помощью :h x_oили :h o.
Линд
Объяснение добавлено.
Ромен
1
Я бы предложил дополнительное решение, чтобы использовать ^ вместо 0 (поэтому строка начинается в начале первого символа:
xnoremap il g_o^
onoremap il :normal vil<CR>
xnoremap al $o^
onoremap al :normal val<CR>
Таким образом, если мы сделаем «изменение в строке», это будет учитывать уровень отступа.
Ответы:
Вот грубая «строчка» текстовых объектов:
И грубый «буферный» текст-объект:
---РЕДАКТИРОВАТЬ---
«Оператор» является командой , которая ничего не делает сам по себе:
d
,y
и т.д.Нажатие этих клавиш переводит вас в «режим ожидания оператора», где Vim ждет, пока вы не скажете ему, над чем вы хотите работать… с «движением в ожидании оператора».
Вы можете использовать
:omap
или:onoremap
для определения пользовательских движений, ожидающих оператора. Техника, используемая здесь, вдохновлена:help omap-info
:Обратите внимание, что я использовал,
:onoremap
потому чтоil
,al
иi%
еще не существует. При переопределении существующего движения или текстовом объекта - скажем ,ip
- вы должны использовать рекурсивное отображение::omap
.:help :map-operator
описывает немного более продвинутый метод.См
:help v_o
дляo
в визуальном режиме.источник
o
(режим ожидания оператора) в onoremap? Что делаетo
в визуальном режиме? Я бы предположил, что это «другая сторона», потому что она, кажется, переходит на другую сторону выбора ... Как я могу найти:h
на нем? Я не могу найти это с помощью:h x_o
или:h o
.Я бы предложил дополнительное решение, чтобы использовать ^ вместо 0 (поэтому строка начинается в начале первого символа:
Таким образом, если мы сделаем «изменение в строке», это будет учитывать уровень отступа.
источник