Вопрос

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

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

Это было полезно?

Решение

=, команда отступа может выполнять движения.Так, gg чтобы получить начало файла, = сделать отступ, G до конца файла, gg=G.

Другие советы

Прежде чем вставлять в терминал, попробуйте :set paste (а потом :set nopaste после того, как вы закончите).Это отключит автоматический отступ, перенос строк и т. д.функции, которые портят вашу пасту.

редактировать:Также я должен отметить, что гораздо лучший результат, чем отступ =, обычно можно получить, используя внешнюю программу.Например, я бегаю :%!perltidy все время.астиль, циндент и т. д.также можно использовать.И, конечно же, вы можете сопоставить их с нажатием клавиши — и сопоставить разные клавиши с одним и тем же нажатием клавиши в зависимости от типа файла.

Если вы хотите изменить отступ блока, в котором находитесь, без необходимости вводить аккорды, вы можете сделать:

[[=]]

Мастер всех команд

gg=G

Это отступы для всего файла!

Ниже приведены некоторые простые и элегантные команды, используемые для быстрого отступа строк в Vim или gVim.

Чтобы сделать отступ для всех строк ниже текущей строки

=G

Чтобы отступить текущую строку

==

Чтобы сделать отступ n строки ниже текущей строки

n==

Например, чтобы сделать отступ на 4 строки ниже текущей строки.

4==

Чтобы сделать отступ для блока кода, перейдите к одной из фигурных скобок и используйте команду

=%

Вы можете использовать аккуратное приложение/утилиту для создания отступов в файлах HTML и XML, и оно очень хорошо работает при создании отступов в этих файлах.

Предварительное оформление XML-файла

:!tidy -mi -xml %

Предварительное оформление HTML-файла

:!tidy -mi -html %

нажмите escape, а затем быстро введите следующие комбинации:

gg=G

1G=G.Это должно сделать отступы для всех строк в файле. 1G берет вас на первую строчку, = запустит автоматический отступ и финальный G выведет вам последнюю строку в файле.

В Vim используйте :insert.Это сохранит все ваше форматирование и не будет выполнять автоматические отступы.Для дополнительной информации help :insert.

:set paste твой друг, я использую шпатлевку и в конечном итоге копирую код между окнами.Прежде чем меня включили :set paste:set nopaste) Копирование/вставка вызвало у меня приступ именно по этой причине.

если вы не хотите использовать :set paste, щелкните средней кнопкой мыши, set nopaste, вы также можете вставить содержимое буфера обмена:

"*p
"+p

Таким образом, вам не придется выходить из обычного режима.если вам нужно вставить + или * зависит от того, как вы выделили текст, см. :help quoteplus.

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

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

:%!astyle

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

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

Для файлов 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 )

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

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

nmap <leader>ai mzgg=G`z

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

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

public static void main(String[] args) {
^I
^I System.out.println("Some Garbage printed upon using :insert"); 
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top