Как сохранить визуальный режим после идентификации по shift +> в vim?

18

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

new_perl
источник
5
Чтобы сделать отступ более одного раза, просто используйте .клавишу, чтобы повторить последнюю операцию
barbaz
С помощью . хороший. Но иногда вам нужно выполнить другую операцию с выбранным кодом после отступа, например, например, yanking. И вы должны выбрать все снова, что отстой
Санти

Ответы:

25

Вы можете использовать команду нормального режима, gvчтобы выделить предыдущий визуальный выбор. Поэтому вы можете использовать следующие сопоставления:

:vnoremap < <gv
:vnoremap > >gv

Команда :vnoremapустанавливает отображение, которое будет работать только в визуальном режиме. Таким образом, вы выполняете привязку команд <и >визуального режима для выполнения отступа и сразу же выбираете предыдущий визуальный выбор.


источник
4
Это не правильно. Должен использовать, vnoremapпотому что vmapбудет рекурсивно отображать, и он сломается
texasbruce
3
@texasbruce: у меня это хорошо работает с vmap, однако я отредактировал ответ (и мой собственный .vimrc), чтобы использовать vnoremap, поскольку он, очевидно, безопаснее.
5

Используя точку "." будет повторять отступ ранее выделенного текста, если это было самое новое редактирование текста. Это не повторный выбор текста, но делает работу так же хорошо.

Ханнес
источник