Ответ 1
Я удивлен, что никто еще не придумал =%
.
Убедитесь, что у вас есть :set cindent
,
Поместите себя на один из {}
вашего блока и просто нажмите:
=%
Весь код в этом блоке будет правильно отпечатан.
Иногда я хочу отложить блок кода C в Vim. Я, как правило, контактировал с ним по строкам.
Что лучше/быстрее?
Я удивлен, что никто еще не придумал =%
.
Убедитесь, что у вас есть :set cindent
,
Поместите себя на один из {}
вашего блока и просто нажмите:
=%
Весь код в этом блоке будет правильно отпечатан.
Войдите в визуальный режим, выберите следующую согласующую скобку, отступ:
V
%
>
Используйте ' > ' для закладки блока
Вставка: C-d, C-t
Пока визуально: > , <
В то время как нормальная: → , < <
В любом из этих режимов используйте '.' отступать дальше.
Try
: set cindent
Включение виртуальной магии в vim. Таким образом, как только вы откроете скобу, она будет автоматически вставлена, пока вы не закроете скобу.
Если у вас есть незашифрованный код, который выглядит так:
if (foo)
{
/* line 1 */
/* line 2 */
/* line 3 */
}
... поместите курсор на строку "1" в командном режиме и введите 3==
, где 3 - количество строк в отступ.
Я думаю, что это будет сделано без каких-либо отступных переключателей.
:startRange,stopRange s/^/^\t/g
должно добавить пространство табуляции в начале строки между диапазоном номеров строк, который вы предоставляете
unindent с:
:startRange,stopRange s/^\t/^/g
В дополнение к тому, что сказал skinp, если у вас есть:
int foo()
{
/* line 1 */
/* line 2 */
/* line 3 */
/* line 4 */
}
и по какой-либо причине желайте, чтобы это выглядело так (то есть вы хотите, чтобы все отступы 4 пробела * были там, где они были ранее, вместо того, чтобы отступать "правильно" в соответствии с правилами исключения):
int foo()
{
/* line 1 */
/* line 2 */
/* line 3 */
/* line 4 */
}
в любом месте блока, do viB > (visualselection innerBlock indent) **
*
или независимо от того, какая ваша ширина сдвига установлена на
**
vi} совпадает с viB и может быть легче запомнить, поскольку vi} выбирает внутри {}, vi) выбирает внутри(), vi] выбирает внутри [], а vi > выбирает внутри < > .
Кроме того, va}, va) и т.д. выберите {},() и т.д. в дополнение к тому, что содержится в блоке.