Недавно я занимался программированием на 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-карта-инструменты.)