Я думаю, что Джереми Уолл движется в правильном направлении. И чтобы немного продвинуться в этом направлении, вы можете взглянуть на сценарий «round.vim »Тима Попа. Хорошее описание доступно на github . Или, если хотите, получите его с vim.org . Это, вероятно, поможет вам сделать некоторые вещи, которые вы хотели бы сделать, хотя, похоже, в нем нет функции, скажем, простого выбора внутри тега. Дайте мне знать, если я ошибаюсь.
В конечном счете, вам действительно нужна иерархия вложенных текстовых объектов. Вы должны читать текстовые объекты, если вы этого не сделали. Хороший обзор здесь . Обратите внимание, что вы можете захватить несколько объектов за один раз, используя счетчики, или сделать это итеративно (попробуйте vawasap}}}
из обычного режима).
Вы также можете получить сценарии, которые определяют другие текстовые объекты, такие как этот , который использует отступ для определения текстового объекта. Он будет работать для многих языков, если вы форматируете в соответствии с общими стандартами и гарантированно для Python.
Одна неприятность заключается в том, что курсор заканчивается в конце визуального блока, поэтому, например, вы не можете легко выбрать все между некоторыми (), а затем получить имя функции, предшествующее им ...
... НО, я только что нашел в этом посте , что вы можете изменить это поведение с помощью o
. Круто!
Я подозреваю, что в долгосрочной перспективе вы будете более эффективны, если будете пропускать промежуточные выборы.
В любом случае, мне было бы любопытно посмотреть, придет ли кто-нибудь еще более общее решение!