Як робити відступ> <, не виходячи з візуального режиму та не втрачаючи поточний вибір?


16

Мені часто доводиться вручну відступати, але коли я переходжу у візуальний режим, вибираю рядки для відступу та натискаю <або >, я залишаю візуальний режим, хочу я чи ні.

Я вважаю за краще, щоб я залишався у візуальному режимі, а вибір і положення курсора залишалися недоторканими.

Як я можу цього досягти?


1
Чи є якийсь шанс, що переоформлення зробить трюк? Щось на кшталт :vmap < <a?
Feffe

Відповіді:


19

Я маю це у своєму vimrc:

"keep visual mode after indent
vnoremap > >gv
vnoremap < <gv

Зауважте, що ви також можете просто використовувати .(крапку), щоб повторити дію останнього відступу.


Майже ідеально, за винятком того, що мій курсор не рухається рядком.
Аківа

1
@Akiva Можливо, ви хочете додати в ^кінці цього відображення? тобто >gv^?
Мартін Турноїй

2
Курсор, здається, переміщується (чи ні) залежно від свого положення щодо відрізного тексту. Для мене незрозуміло, де ви хочете, щоб курсор розміщувався: під тим самим номером стовпця або на одному символі? Крім того , ви знаєте , що ви можете переміщати курсор , наприклад , з j, k, і lт.д. , а в візуальному режимі?
VanLaser

2
Чесно кажучи, я просто поставив <Right>І <Left>після команд, і це добре працювало.
Аківа

9

Я знаю, що це не автоматичне рішення, але ви можете це досягти, скориставшись gvвізуальним відступом.

Це перейде у візуальний режим із обраним попереднім виділенням та курсором в останньому рядку. Див. Для :h gvотримання додаткової інформації.


-2

Я спробував додати наступне відображення до мого vimrc:

vmap < <a
vmap > >a

Здається, це має цікаві результати, можливо, це те, що ви шукаєте?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.