Pull to refresh

Vim magic — Visual mode

Reading time 2 min
Views 19K
Немножко о режиме выделения для тех, кому лень проходить 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.
Tags:
Hubs:
+20
Comments 14
Comments Comments 14

Articles