Vim magic — Visual mode

    Немножко о режиме выделения для тех, кому лень проходить vimtutor, или тех, кто ещё сомневается в том, что Vim это действительно удобно.

    Режим выделения в Vim это одна из тех грандиозных вещей (наряду с *, = и text-objects), которые делают этот редактор особенно удобным. Как вы уже знаете, в Vim есть режим Visual, в котором можно выделять текст, чтобы потом с выделением что-нибудь делать, например, засунуть его в регистр, отформатировать, заменить в нем что-нибудь регулярным выражением или ещё что-нибудь. Чтобы войти в этот режим, нужно нажать v, а потом перемещать курсор обычными командами, передвигающими курсор в обычном режиме, расширяя таким образом область выделения.

    Режимов выделения есть несколько: обычный, построчный и блочный. Обычный включается командой v и выделяет текст от символа до символа. Построчный включается командой V (Shift+v) и выделяет строки целиком. Блочный включается командой Ctrl+V (под Windows может включаться Ctrl+Q, если Ctrl+V занято под вставку текста из клипборда) выделяет вертикальный блок текста (не захватывает начала и концы строк в середине выделения, как это происходит в обычном режиме).

    А теперь, немного особой, Vimовской магии. Допустим, вы начали выделять текст, но заметили, что начало выделения находится не там, где вы хотели. В большинстве редакторов вам понадобится сбросить выделение и выделить текст заново. В Vim вы можете нажать o и расширять выделение в другую сторону. Если же вы находитесь в блочном режиме o будет перемещать курсор через блок по диагонали, то есть, например, из левого верхнего угла блока в правый нижний. Если же вам хочется изменить выделение используя оставшиеся два угла, нажмите O (Shift+o).

    Но это ещё не всё. Представьте себе, что вы начали выделять в обычном режиме, но потом решили, что нужно было делать это в построчном. Просто нажмите V, режим выделения сменится на построчный и вы не потеряете текущее выделение. Вы можете менять режимы как хотите, не сбрасывая выделение, и мне кажется, что это действительно очень удобно. Ну и на последок, если вам понадобилось выделить тот же кусок текста, который у вас был выделен в последний раз (например вы случайно сбросили выделение, или сделали с ним что-то и хотите сделать что-то ещё) — просто нажмите gv.

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 14

    • UFO just landed and posted this here
      • UFO just landed and posted this here
          0
          Paul пишите еще !!
            +1
            Это чья-то шутка? ;) Половина постов на главной про VIM!!!! O_o
              +5
              Неделя VIM в Макдональдс на Хабре ;)
                +1
                С удовольствием бы почитал и про emacs. )
                0
                Спасибо за пост!

                Не знал что в vim такая удобная работа с выделениями.

                Всё время считал визуальный режим чем-то не интересным :)
                  0
                  никто не читал по поводу того, что в коллективные блоги некрасиво писать очень часто?

                  vim конечно крут, и я сам им кое-как пользуюсь, но такое количество статей в такой малый промежуток времени задолбает хабро-юзверей. И получится ситуация как с айфоном(помните картинку с двумя задротами?)
                    0
                    Извините, больше не буду писать так часто :) Или буду прятать под замок :)
                    0
                    Хочется еще заметок про Vim. Особенно таких коротеньких, которые можно быстренько изучить за чашечкой чая/кофе.
                      0
                      Я встречал только одну программу, которая, как и Vim, умеет продолжать выделение текста "с другой стороны" — это Adobe Reader. Хватаешься себе за выделение с любого конца и тащишь...
                        0
                        спасибо за заметку!
                          0
                          даже с многолетним стажем виммерства продолжаешь узнавать всё новое... спасибо за статью.
                            0
                            Спасибо. Я вовсе не знал никогда про режим выделения. Узнал из статьи. Пользуюсь теперь!

                            Only users with full accounts can post comments. Log in, please.