Можно ли определить пользовательское движение в vim?

3

Это вообще возможно?

Я имею в виду, что многие команды vim могут обрабатывать движение, могу ли я определить собственное движение, чтобы адаптировать свои изменения к среде?

Конкретная команда, которая меня интересует, - gqпереформатировать. Я могу напечатать, gqipчтобы переформатировать абзац, ipявляясь движением от начала до конца текущего абзаца, исключая окружающие пробелы.

Можно ли определить собственное движение для замены, ipчтобы позволить мне, скажем, переформатировать комментарии, не касаясь окружающего кода? Это потребует движения, аналогичного, ipно с другими условиями, где оно начинается или заканчивается.

SpoonMeiser
источник

Ответы:

4

Ознакомьтесь с этой статьей Vim Tips Wiki по созданию новых текстовых объектов , а также с этими двумя подключаемыми модулями Vim, которые предоставляют функции для создания пользовательских текстовых объектов, и примером создания пользовательских текстовых объектов.

garyjohn
источник
Возможно, вам следует расширить этот ответ, чтобы кратко рассказать о том, что упоминаются в этих ссылках. В частности, именно omap делает то, что я хочу.
SpoonMeiser
@SpoonMeiser: я бы понял, если бы сам лучше понял. Я просто знал, где найти дополнительную информацию.
garyjohn