Форматировать код Ruby в Vim - PullRequest
       67

Форматировать код Ruby в Vim

26 голосов
/ 24 сентября 2010

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


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

if has("autocmd")
  filetype indent on
endif

Ответы [ 7 ]

40 голосов
/ 24 сентября 2010

Vimcasts содержит полезную скринкаст на эту тему, которая может вас заинтересовать

gg=G

gg => go to start of file
=  => apply autoformatting
G  => ... to the end of file
15 голосов
/ 27 октября 2011

Когда я вижу вопросы о Vim, переформатировании и переиндентировании, я обычно испытываю замешательство.Но это довольно просто.

Переиндентирование, выполненное с помощью клавиши = , представляет собой процесс сдвига строки с независимой вставкой без вставки каких-либо концов строки - без жесткого переноса.Проще говоря, начальные столбцы выбранных строк могут изменяться, но содержимое не может.

С другой стороны, переформатирование - это полное переписывание выбранного фрагмента кода.Проще говоря, все удаляется и записывается снова в соответствии с правилами языка, определенными в Vim.Легко, да?

Обычный шаблон для переиндентирования - перейти в начало файла ( g g ), перейти к выбору строки ( V).), перейдите в конец файла ( G ) и выполните переидентификацию ( = ).

Это отступ в vim : g g V G =

Переформатирование шаблон начинается с тех же клавиш ( g g V G ), но вместо равного ключа вы делаете g q - переформатировать команду Vim.

Это форматирование в vim : г г V G г q

Это работает вне коробки в каждом экземпляре Vim, даже с простым текстом.Только когда Vim не понимает язык программирования, вам нужно предоставить ему правильные правила форматирования (обычно это набор файлов .vim, которые должны идти в структуре каталогов .vim).

Переформатирование для Ruby работает только тогда, когда плагинvim-ruby установлен.

Мне пришлось опубликовать это в моем блоге ;-) Разве Vim не крутой?Это.

3 голосов
/ 24 сентября 2010

Попробуйте:

gg=G

в обычном режиме.

2 голосов
/ 11 декабря 2014

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

0 голосов
/ 08 декабря 2013

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

0 голосов
/ 12 апреля 2013

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

vim-autoformat-rails

0 голосов
/ 24 сентября 2010

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

...