Ответ 1
Vimcasts имеет полезный скринкаст на этом что вас может заинтересовать
gg=G
gg => go to start of file
= => apply autoformatting
G => ... to the end of file
Просто перейдем к Виму в данный момент. В TextMate я мог форматировать код, нажав Cmd - Alt - [. Как добиться того же результата в Vim?
См. ответ ниже для команды. Я обнаружил, что мне также понадобилось следующее в моем .vimrc
, чтобы Vim знал, как использовать autoindent Ruby.
if has("autocmd")
filetype indent on
endif
Vimcasts имеет полезный скринкаст на этом что вас может заинтересовать
gg=G
gg => go to start of file
= => apply autoformatting
G => ... to the end of file
Когда я вижу вопросы о Vim и переформатировании и reindenting, я обычно чувствую замешательство. Но это довольно легко.
Повторение, выполняемое клавишей =, представляет собой процесс сдвига строки, не вставляя никаких концов строки - без жесткой упаковки. Проще говоря, начальные столбцы выбранных строк могут меняться, но контент не может.
С другой стороны, переформатирование - это полная переработка выбранного фрагмента кода. Проще говоря, все удаляется и записывается снова в соответствии с правилами языка, определенными в Vim. Легко, да?
Обычным patern для reindentation является переход к началу файла (g g), изменение выбора строки (V), переход в конец файла (g) и выполнение reidentation (=).
Это отступы в vim: g g V g =
Обратный шаблон начинается с тех же самых клавиш (g g V g), но вместо равного ключа вы делаете g q - reformat Vim команда.
Это форматирование в vim: g g V g g q
Это работает в любом экземпляре Vim, даже с открытым текстом. Только когда Vim не понимает язык программирования, вам необходимо предоставить правильные правила форматирования (обычно это пустые файлы .vim, которые должны перейти в структуру каталога .vim).
Реформация для Ruby работает только при установке плагина vim-ruby.
Мне пришлось опубликовать этот в своем блоге;-) Не круто ли Vim? Это.
Try:
gg=G
в нормальном режиме.
Если вы ищете не просто отступы, посмотрите ruby-beautify. Он может быть интегрирован с vim через vim-autoformat.
ggVGgq переформатирует весь файл в соответствии с текущим типом файла
Я выпустил плагин VIM, который сделает более подробное форматирование для файлов Ruby. В дополнение к отступу, он делает такие вещи, как удаление конечных пробелов и последовательно исключает объявления методов:
Для небольшого отступа, попробуйте:
=}
, =)