Могут ли маркеры vim работать с клавишей повтора? - PullRequest
2 голосов
/ 16 сентября 2011

Я регулярно использую клавишу ., чтобы повторить мою последнюю команду vim. Мне интересно, есть ли способ использовать его с командами, выполняемыми с использованием маркеров. Вот простой пример:

  • Пометить строку текста, используя m'a
  • Переместитесь вниз на несколько строк, например, 5j
  • Отступ строк с использованием >'a - отступов 6 строк
  • Нажмите ., чтобы повторить указанную выше команду на тех же 6 строках - повлияет только на 1-ю строку

Есть ли способ заставить vim применять тот же диапазон маркеров, что и у предыдущей команды, при использовании команды .?

пс. Я знаю, что приведенный выше пример был бы проще с 6>>, который работает с ., я просто использую его в качестве примера. Я часто использую маркеры для более сложных / более длинных команд.

1 Ответ

1 голос
/ 16 сентября 2011

Проблема в том, что команда, которую вы повторяете, - >'a, но из-за правила "После применения оператора курсор в основном остается в начале текста, с которым вы работали" (из :help operator), >'a оставляет курсор на отметке a, если это было выше вашей начальной позиции.Затем, когда вы повторяете >'a, вы в конечном итоге получаете движение линии от этой линии к себе, которое переопределяет отступ только на одну строку.

Поскольку вы остаетесь в начале блока текста, это влияет наснова в том же текстовом блоке вы можете использовать движения '] (по аналогии) или `] (по часовой стрелке), которые перемещаются к концу только что затронутого блока текста.Таким образом, вы можете использовать >'] для повторного отступа того же блока, и так как ваш курсор начинается и заканчивается в том же положении в этот раз, вы можете повторить его еще раз с ..

Более простой выбор, будет просто использовать V5j> вместо ma5j>'a.V запускает визуальный режим (аналогично) в вашей текущей позиции, 5j перемещается вниз на 5 строк, а затем > отступов.И когда вы повторяете, используя ., то же визуальное выделение сохраняется, поэтому вы получите желаемый результат, двигаясь вверх или вниз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...