Когда визуальный режим используется в Vim? - PullRequest
12 голосов
/ 28 января 2010

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

Каковы некоторые сценарии, когда визуальный режим особенно полезен?

Существуют ли действия, которые можно выполнять только в визуальном режиме?

Ответы [ 6 ]

7 голосов
/ 28 января 2010

Я использую визуальный режим, когда хочу выделить часть текста.Я начинаю с ввода v в стандартном режиме, который затем включает визуальный режим.Затем я использую клавиши со стрелками для перемещения курсора.Это вызывает выделение текста между моей начальной точкой и текущим местоположением курсора.После того, как вы выделите такой фрагмент текста, ввод команды (например, поиск / замена) в командном режиме (введя : ) повлияет только на выбранную область.

Другая полезная визуальная командаis shift + v (визуальная линия).Это делает то же самое, что и выше, но выбирает целые строки за раз вместо отдельных символов.

4 голосов
/ 28 января 2010
  1. Когда вы хотите комментировать блок текста .
    В командном режиме:
    Сдвиг + v ctrl + v , j или k , I , # (комментарий символ), а затем Esc

    Vim вставляет символ комментария в начало блока ..

  2. - когда я использую Gvim , мне гораздо проще копировать данные в буфер обмена в визуальном режиме.
    В командном режиме:
    Сдвиг + v j или k , ", + у

    Здесь + - буфер обмена зарегистрироваться

    Для меня это гораздо более разборчиво, чем использование маркеров

  3. предназначен для ручной отступ

    Сдвиг + v ,
    Shift + > для двигаясь вправо. Сдвиг + <</KBD> для двигаясь влево. . повторы

это весело :-)

3 голосов
/ 28 января 2010

Одна из приятных особенностей визуального режима заключается в том, что благодаря фокусировке Vim на модальности вы можете выполнять большинство привычных вам команд (например, поиск / замена на : s , d , чтобы удалить текст, или r , чтобы заменить текст), а также увидеть, что именно будет затронуто - это позволяет вам определить точную область действия, что вы делаете.

Кроме того, как кто-то еще упомянул, вы можете легко вставить префикс (например, символ комментария или, скажем, & для выравнивания или \item в LaTeX), выбрав первый символ каждой строки в visual block mode ( ctrl + v ), нажимая I для вставки перед первым символом, вводя то, что вы хотите вставить, а затем Esc возврат в нормальный режим.

Последний вид визуального режима - визуальная линия ( Shift + v ), который позволяет быстро выбрать количество строк. Оттуда вы можете изменить отступы, используя > или <</kbd> (префикс это число с отступом для множества вкладок), используйте d или y , чтобы удалить или скопировать эти строки, используйте zf , чтобы создать новый сгиб из этих строк, или используйте любую другую команду на основе выбора.

Наконец, есть много других интересных вещей, которые вы можете сделать в визуальном режиме, включая gv для повторного выбора вашего последнего визуального выбора режима [line / block], gU для преобразования визуальный выбор в верхнем регистре или гу в нижнем регистре и многое другое.

2 голосов
/ 28 января 2010

В дополнение к другим (отличным) ответам, это простой способ определить область действия. Например, чтобы ограничить поиск и замену определенным методом ...

Скажем, у вас есть этот код:

function foo() {
    abc();
    while (1) {
        def();
        abc();
    }
}

Вы можете поместить курсор на любую из фигурных скобок или скобок и нажать v , % , : , s / abc / xyz / g и ваш поиск и замена будут иметь определенную область, в которой будет происходить действие.

1 голос
/ 28 января 2010

Визуальный режим полезен, если вы хотите применить команду к фрагменту текста, который нелегко описать как команду примитивного движения. Вы можете выделить текст в визуальном режиме со сложной последовательностью движений, а затем применить команду к этому выделению.

0 голосов
/ 28 января 2010

Я часто использую режим визуального блока ( Ctrl + v ) больше, чем любой другой визуальный режим.

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

Вы также можете добавить отступ (или комментарии, как сказал Чериан), выделив блок текста и нажав I , напечатав все, что вы хотите добавить, и нажав Esc (примечание: вам может потребоваться перерисовать экран (например, перемещая курсор), чтобы увидеть эффекты этого).

...