Как исправить отступы всего файла в Vi? - PullRequest
600 голосов
/ 03 февраля 2009

В Vim, какая команда исправляет отступ всех строк?

Часто я копирую и вставляю код в удаленный терминал, и все перепутано. Я хочу исправить это одним махом.

Ответы [ 17 ]

4 голосов
/ 22 марта 2015

vim-autoformat форматирует исходные файлы с использованием внешних программ, специфичных для вашего языка, например, rbeautify "gem для файлов Ruby", пакет js-beautify npm для JavaScript.

3 голосов
/ 16 декабря 2014

Для сложных файлов C ++ vim не всегда правильно форматирует при использовании команды фильтра vim =. Поэтому для таких ситуаций лучше использовать внешний форматировщик C ++, такой как astyle (или uncrustify ), например ::

:%!astyle

Функция Vim '=' по умолчанию использует свой внутренний форматер (который не всегда правильно понимает), но можно также настроить его, используя внешний форматер, такой как astyle, настроив его соответствующим образом, как описано в вопрос .

2 голосов
/ 26 августа 2015

Для файлов XML я использую эту команду

:1,$!xmllint --format --recover - 2>/dev/null

Вам необходимо установить xmllint (пакет libxml2-utils)

(Источник: http://ku1ik.com/2011/09/08/formatting-xml-in-vim-with-indent-command.html)

2 голосов
/ 03 февраля 2009

vi должен учитывать табуляции и пробелы, однако вы должны учитывать, что vi может использовать вкладки другой длины, чем ваш другой редактор. Можете ли вы быть более конкретным, чем «все испорчено»?

1 голос
/ 09 февраля 2017

Вы можете создать сопоставление, чтобы сделать это для вас.

Этот файл автоматически сделает отступ для всего файла и все еще будет держать курсор в том положении, в котором вы находитесь:

nmap <leader>ai mzgg=G`z
0 голосов
/ 04 декабря 2018

Просто перейдите в визуальный режим в vim и выберите строки сверху вниз после выбора, просто нажмите =, все выбранные строки будут с отступом.

0 голосов
/ 23 декабря 2015

Для vi Editor используйте: insert. Это сохранит все ваше форматирование и не вставит авто-отступ. Как только вы закончите, нажмите escape для просмотра реального отформатированного файла, в противном случае вы увидите некоторые символы мусора. как ^ я например:

public static void main(String[] args) {
^I
^I System.out.println("Some Garbage printed upon using :insert"); 
}
...