Как мне отформатировать код из Интернета с помощью Vim?

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

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

в

while (head == tail)
{
    head++;
    a[head] = 0
}
4
задан 6 May 2011 в 05:53

3 ответа

(Во-первых, Вам нужна точка с запятой перед последним } для этого, чтобы быть допустимым C; точка с запятой должна считаться завершающимися операторами в C, а не как разделение операторов. Умное автоматическое добавление отступа не может работать правильно, если Вы не добавляете ту точку с запятой.)

Vim = команда (:help =) может использоваться для выполнения кода через автоматическую программу добавления отступа, хотя требуется некоторая конфигурация. Основная идея состоит в том, что Вы устанавливаете equalprg опция (:help 'equalprg') к программе, которая применяет добавление отступа, которое Вы хотите и затем используете = в командном режиме для выполнения его. = работы как другой Vim основанные на движении команды такой как d и y; например, == располагает текущую строку с отступом, =ap располагает абзац с отступом, или можно использовать визуальный диапазон: ggVG= располагает целый файл с отступом.

Теперь, по умолчанию, equalprg установлен на пустую строку, которая только делает основной на строку добавление отступа, встроенное в Vim. Чтобы сделать вид вещи, которую Вы просите, лучший инструмент для задания, indent:

отступ Install indent

indent имеет обширный массив опций для различных стилей добавления отступа; по умолчанию это использует стиль кодирования GNU, но Вы, вероятно, захотите настроить его для удовлетворения предпочтениям проекта. Посмотрите отступ человека для деталей. Включать пробелы в значение equalprg, необходимо заключить им в кавычки с обратной косой чертой, так например, если бы Вы хотели использовать стиль добавления отступа K&R, то Вы использовали бы :set equalprg=indent\ -kr.

Вы можете также иметь '=', команда выбирает соответствующее добавление отступа на основе типа файла, при помощи :filetype indent on - ввести :help filetype в энергии для большего количества информации.

:set autoindent скажет энергии делать отступ, как Вы вводите. Добавление любой из этих команд (минус продвижение ':') к Вашему ~/.vimrc файл сделает их постоянными.

7
ответ дан 6 May 2011 в 05:53

Этот плагин vim использует внешние средства форматирования для форматирования кода в vim. Поэтому он сильнее, чем механизм отступов vim.

vim-автоформат на GitHub

0
ответ дан 6 May 2011 в 05:53

Как и любой другой текстовый редактор, VIM не делает этого автоматически.

Откройте файл с помощью vim, нажмите i для вставки, и теперь вы можете свободно редактировать, когда закончите, нажмите Esc , чтобы выйти из режима вставки, а затем закрыть и сохранить запись документа :wq для записи, выход.

0
ответ дан 6 May 2011 в 05:53

Другие вопросы по тегам:

Похожие вопросы: