3

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

Я только что перешел в начало строки и добавил вкладку.

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

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

Есть ли более простой способ справиться с этой проблемой?

4 ответа4

8

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

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

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

2

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

0

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

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

0

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .