Отступ в несколько строк с 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?


В командном режиме: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 строк.


10

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

=G

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

gg=G

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

==

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

n==

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

4==

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


8

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


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

3

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

:/<script>/,/<\/script>/ >>
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.