4

Например, для рендеринга:

while (head == tail) { head++; a[head] = 0 }

в

while (head == tail)
{
    head++;
    a[head] = 0
}

5 ответов5

0

Вы можете установить astyle и заставить его делать всю работу за вас. В vim вы можете выбрать блок кода и выполнить:

:'<,'>!astyle

(где '<,'> был добавлен для вас, когда вы нажимаете двоеточие.)

Это заменит выбранный вами текст украшенной версией astyle.

0

Это для Windows или Linux? Я предполагаю, что Linux - это вопрос vim, даже если vim доступен для Windows.

Программа indent вероятно, уже установлена на вашем компьютере с Linux, поэтому дополнительные установки не требуются. Аналогично ответу ngm, вы можете использовать

:'<,'>!indent -

или же

!Gindent -

к симпатичному блоку кода или всему коду от текущего места до конца файла. Обязательно добавьте «-» в конце этой команды

См. Справочную страницу для отступа man indent для большого количества вариантов форматирования.

0

Используйте vim-autoformat для автоматической интеграции внешних форматеров (например, clang-format и astyle для c-подобных языков) и запускайте их одним нажатием кнопки.

0

Один лайнер:

:setfiletype sh|%s/{/{^M/g|%s/}/^M}/g|%s/;/;^M/g|normal ggVG=

Разбивка: установите тип файла так, чтобы vim знал, какой синтаксис он использует (в данном случае сценарий оболочки):

:setfiletype sh  

вставьте символы новой строки после символов «{» и до «}» (введите CTRL - V, чтобы получить буквенный символ новой строки):

:%s/{/{^M/g
:%s/}/^M}/g

вставить символ новой строки после ';' персонажи:

:%s/;/;^M/g

аналогично вводу ggVG = в обычном режиме:
'gg' = перейти к началу, 'V' = выбрать строки визуально, 'G' перейти к основанию, '=' = автоформат:

:normal ggVG=

Это очень просто и не удастся во многих случаях, например, если есть «;» в строковом литерале. Но это должно сделать код более читабельным.

-1

Выберите код в режиме визуального выбора (V) и нажмите =

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