Подтвердить что ты не робот

Формат Ruby-кода в Vim

Просто перейдем к Виму в данный момент. В TextMate я мог форматировать код, нажав Cmd - Alt - [. Как добиться того же результата в Vim?


См. ответ ниже для команды. Я обнаружил, что мне также понадобилось следующее в моем .vimrc, чтобы Vim знал, как использовать autoindent Ruby.

if has("autocmd")
  filetype indent on
endif
4b9b3361

Ответ 1

Vimcasts имеет полезный скринкаст на этом что вас может заинтересовать

gg=G

gg => go to start of file
=  => apply autoformatting
G  => ... to the end of file

Ответ 2

Когда я вижу вопросы о 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? Это.

Ответ 3

Try:

gg=G

в нормальном режиме.

Ответ 4

Если вы ищете не просто отступы, посмотрите ruby-beautify. Он может быть интегрирован с vim через vim-autoformat.

Ответ 5

ggVGgq переформатирует весь файл в соответствии с текущим типом файла

Ответ 6

Я выпустил плагин VIM, который сделает более подробное форматирование для файлов Ruby. В дополнение к отступу, он делает такие вещи, как удаление конечных пробелов и последовательно исключает объявления методов:

vim-autoformat-rails

Ответ 7

Для небольшого отступа, попробуйте:   =}, =)