Если я хочу, скажем, удалить блок, я могу использовать движения текстовых объектов.
Т.е. если мой текст выглядит так:
(let [a 1 b {:x 3 :y 4}]
a)
И курсор находится например на символе 3
.
Если я наберу, diB
то :x 3 :y 4
будет удален. Если это так, daB
то и блок, и окружающие скобки будут удалены:{:x 3 :y 4}
Итак, шаблон таков:
operation inclusion block-motion
Где операция может быть:
d
- удалятьc
- изменениеy
- скопировать ...
включение это либо:
i
- внутренний (без скобок) илиa
- все
и блок-движение:
b
,(
Или)
для()
скобокB
,{
Или}
для{}
фигурной скобки[
или]
и<
или>
для своих соответствующих скобок и т. д.
Теперь возникает вопрос: есть ли движение блока для самого внутреннего блока в скобках любого из этих типов?
Я хотел бы быть в состоянии сделать da?
с ?
тем движением я ищу. И если курсор в моем примере выше находится в пределах, {}
скажем, 3
я бы удалил только то, {}
но если бы мой курсор был включен, b
я бы удалил []
блок и т. Д.
line 13: E15: Invalid expression: E15: Invalid expression: {
(…). У меня vim 7.2, ваш код требует 7.3? Между прочим, в то время как вопросы программирования обычно перенаправляются на SO, ответы на сценарии (для оболочек, редакторов и других программ с поддержкой сценариев) распространены здесь.set cpo&vim
в начале сценарий, который был протестирован и разработан на vim 7.2.148 на ... Windows XP. (Я немного устал от этого рассеяния сообщества vim, см. Комментарии к этому ответу stackoverflow.com/questions/4488979/… )b
для всех блоков, но он по-прежнему выбирает только()
тип блока. Нужно ли называть его по-другому или я его неправильно установил?ib
уже что-то значит. Вы можете использовать этот сi%
илиa%
(см отображения) =>di%
,va%i%
,c2a%
и т.д.Не по умолчанию, но может быть какой-то механизм для добавления этой функциональности. В visual.txt, разделе о работе с визуальной областью, он имеет следующее:
источник
Есть vim addon, называемый textobj-user, который поддерживает что-то вроде этого. На самом деле я не уверен, что понял, что вы ищете, но я думаю, что аддон предназначен для того, чтобы было удобнее написать аддон для реализации того, что вы хотите.
источник