Я относительно плохо знаком с миром Vim. Я изучал свой путь вокруг этого, но должен все же найти практическую цель перейти к визуальному режиму.
Каковы некоторые сценарии, когда визуальный режим особенно полезен?
Есть ли действия, которые могут только быть выполнены из визуального режима?
Я использую визуальный режим, когда хочу выделить фрагмент текста. Я начинаю с ввода v в стандартном режиме, который затем включает визуальный режим. Затем я использую клавиши со стрелками для перемещения курсора. Это позволяет выделить текст между моей начальной точкой и текущим положением курсора. После выбора такого участка текста, ввод команды (например, поиск/замена) в командном режиме (при наборе :) повлияет только на выделенную область.
Еще одна полезная визуальная команда - это сдвиг +v (визуальная строка). Она делает то же самое, что и выше, но выбирает целые строки за раз вместо отдельных символов.
В дополнение к другим (великим) ответам, это простой способ определить объем для действия. Например, для ограничения поиска и замены на определенный метод ...
Скажите, что у вас есть этот код:
function foo() {
abc();
while (1) {
def();
abc();
}
}
Вы можете поместить курсор на любую из брекетов или скобок и нажмите V , % , : : , S / ABC / XYZ / G и ваш поиск и замена будет иметь определенный объем, в котором произойдет действие.
Визуальный режим полезен, если вы хотите применить команду к участку текста, который не так просто описать как примитивную команду перемещения. Вы можете выделить некоторый текст в визуальном режиме со сложной последовательностью движений и затем применить команду к этому выделению.
Когда вы хотите прокомментировать блок текста .
В режиме команд :
Shift + v.
,ctrl +v,
j или k ,
I , #(комментарий](комментарий)
символ) и затем Esc
Vim вставляет символ комментария к начало блока...
, когда я использую Gvim , мне намного проще скопировать данные .
в буфер обмена в визуальном режиме.
В режиме команд :
Shift + v.
. j или k ,
" , +
.y
Здесь + - это буфер обмена. register
Для меня это гораздо более понятно, чем использование маркеров
для ручных отступов
Shift + v,
Shift + > для
двигаясь вправо.
Shift + < for
двигаясь влево. .
повторяет
это весело :-)
Одной из приятных особенностей визуального режима является то, что, поскольку Vim уделяет особое внимание модальности, вы можете выполнять большинство команд, к которым вы привыкли (например, поиск / замена на : s , d , чтобы удалить текст, или r , чтобы заменить текст), а также увидеть, что именно будет затронуто - это позволяет вам определить точный объем того, что вы делаете.
Кроме того, как уже упоминалось кем-то другим, вы можете легко вставить префикс (например, символ комментария или, скажем, &
для выравнивания или \ item
в LaTeX), выбрав первый символ каждой строки в режиме визуального блока ( ctrl + v ), нажатие I для вставки перед первым символом, ввод любого вы хотите вставить, а затем Esc , чтобы вернуться в нормальный режим.
Последний вид визуального режима - это визуальная линия ( Shift + v ), который позволяет быстро выбрать количество строк. Оттуда вы можете изменить их отступ, используя > или < (добавьте к этому префиксу число для отступа таким количеством вкладок), используйте d или y , чтобы удалить или скопировать эти строки, используйте zf , чтобы создать новую складку из этих линий, или используйте любую другую команду на основе выбора.
Наконец, есть много других интересных вещей, которые вы можете сделать с визуальным режимом, в том числе gv для повторного выбора вашего последнего выбора визуального режима [строка / блок], gU для преобразования визуальный выбор в верхнем регистре или гу для нижнего регистра и многое другое.
Я часто использую режим визуального блока ( Ctrl + v ) больше, чем любой другой визуальный режим.
Вы можете легко удалить отступы, комментарии и т. Д., Если знаете об этом режиме. По моему опыту, это часто бывает быстрее, чем выяснять, как сформировать эквивалентный оператор поиска и удаления.
Вы также можете добавить отступ (или комментарии, как сказал Чериан), выбрав блок текста и нажав I , набрав все, что вы хотите добавить, и нажав Esc (примечание: вам может потребоваться перерисовать экран (например, переместив курсор), чтобы увидеть последствия этого).