Отступ в несколько строк с VIM?

42

Например, я редактирую этот код:

<html>
<body>
<script>
    var a = 10;
    a += 100;
</script>
</body>
</html>

Теперь мне нужно сделать отступ в строке скрипта:

<html>
<body>
    <script>
        var a = 10;
        a += 100;
    </script>
</body>
</html>

Как я могу сделать это, не перемещая курсор в начало каждой строки и нажимая клавишу Tab?

wong2
источник
В командном режиме:gg=G
Принц Джон Уэсли

Ответы:

72

Нажмите, Vчтобы переключиться в режим VISUAL LINE и выделите линии, которые вы хотите сделать отступ, нажав j. Затем нажмите, >чтобы сделать отступ. Таким образом, полная команда будет Vjjj>.

В качестве альтернативы, наведите курсор на <script>тег и используйте 4>>для отступа четыре строки.

кендырь
источник
1
Кроме того, при изменении нескольких уровней отступа. чрезвычайно полезен (он будет перемещать тот же «блок») с визуальными элементами, метками или [количеством], как указано выше 4 >>).
Пиф
Кроме того, если ваш синтаксический файл может выполнять сопоставление тегов, вы можете навести курсор на слово «script» и нажать v для визуального режима,%, чтобы перейти к сопоставляемому тегу, и> для отступа или = для автоматического отступа на основе синтаксиса, поэтому общая команда будет v%> или v% =
бен
Это работает и с посимвольным визуальным режимом (строчная буква v), который немного легче набирать. Итак, vjjj>
Джеймс Скривен
14

Чтобы дополнить ответ выше, посмотрите здесь. https://stackoverflow.com/questions/235839/how-do-i-indent-multiple-lines-quickly-in-vi

Есть несколько способов сделать это, и я не могу надеяться конкурировать с документацией, уже предоставленной там.

Мой личный фаворит - ==авто-отступ. 5==для авто-отступа 5 строк.

user606723
источник
10

Чтобы сделать отступ для всех строк под текущей строкой

=G

Таким образом, чтобы сделать отступ для всего файла, перейдите к началу файла ( gg), а затем сделайте отступ для всех строк ниже текущей строки ( =G).

gg=G

Для отступа текущей строки

==

Таким образом, для отступа nстрок ниже текущей строки

n==

Например, чтобы сделать отступ на 4 строки ниже текущей

4==

Это самые простые команды для отступа нескольких строк.

Сагар Джайн
источник
8

Если бы это был я, я бы заметил, что нужно сделать 4 строки для отступа, поместите их в верхнюю строку и затем напечатайте >4>. Если бы было слишком много строк для подсчета, я поместил бы в верхнюю строку и напечатал бы, mkчтобы сделать пометку с именем k, затем поместил бы в нижнюю строку (которая могла бы быть на расстоянии нескольких экранов), и напечатал бы>'k

Майкл Диллон
источник
хороший совет, чтобы сохранить математику в строках, спасибо!
мерцание
3

Вот хороший подход, если вы пытаетесь сделать отступ для множества строк:

:/<script>/,/<\/script>/ >>
bhinesley
источник