Отступ на X строк в vim

Отступ на X строк в vim

Недавно я занимался программированием на Java для одной работы и заметил, что сначала пишу код, а затем понимаю, что его нужно заключить в блок try/catch.

Я просто перехожу в начало строки и добавляю табуляцию.

0 i <tab> <esc> k (repeat process until at beginning or end of block)

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

Есть ли более простой способ решить эту проблему?

решение1

Другой вариант — выбрать строки с помощью Shift+ V, как предлагает Игнасио, а затем нажать >(знак больше). Это сделает отступ в соответствии с вашими настройками отступа (shiftwidth, expandtab и т. д.).

Вы также можете сделать отступ более чем на один уровень с помощьючисло>, например, 2>для отступа в два уровня.

Наконец, если Vim распознает тип файла (введите :set filetype?, он должен вывести filetype=java), то вы можете выбрать любой код, как указано выше, и нажать =, и он исправит отступы, используя правила для этого типа файла.

решение2

Используйте визуальный ( V) или визуальный линейный ShiftVрежим ( ), чтобы выбрать строки для отступа, нажмите :, затем введите s/^/CtrlVTab/.

решение3

Другой способ:
CTRL+ v(запускает режим визуального блока)
x jили x k(где x представляет собой количество строк вниз или вверх)
>(он же shift+ .)

Это не сильно отличается от ответов выше, но вводит блочный режим, который действительно удобен для редактирования нескольких строк.

решение4

Vim гораздо умнее, чем другие ответы позволяют вам думать: он может автоматически перестраивать отступы в зоне кода. Обычно, изнутрипытатьсяблок, вам просто нужно будет набрать =i{-- на самом деле это будет работать из любого блока фигурных скобок. И это все ... пока ваши параметры отступа ( cindent, expandtab, sw) установлены правильно для ваших нужд и вкусов.

Следующим шагом будет использование сопоставления, которое знает, как окружить любой набор выбранных линий вашимпытатьсяблок (и который не забывает сделать отступ в конце процесса). У меня есть такая штукадля С++, его не так уж сложно адаптировать к Java. (Этотолькотребуются еще два плагина библиотеки:lh-vim-libиlh-карта-инструменты.)

Связанный контент