изменить отступ в режиме emacs для ruby-mode на 4 пробела - PullRequest
9 голосов
/ 21 января 2010

Из предыдущего поста я получил режим Ruby, работающий в emacs. Это работает отлично.

Настройка файла .emacs для разработки Mac Ruby

Наша компания использует 4 пробела для отступов, хотя вместо значения по умолчанию 2. У меня возникают проблемы с этим.

Вот мой файл .emacs

(add-to-list 'путь загрузки "~ / rdoc-mode.el")

(требуется режим 'ruby-mode')

(setq indent-tabs-mode nil); всегда заменяйте табуляцию пробелами

(setq-default tab-width 4); установите ширину табуляции на 4 для всех буферов

Кто-нибудь видит, что я делаю неправильно?

Спасибо!

Ответы [ 3 ]

18 голосов
/ 21 января 2010

Параметр tab-width контролирует только ширину символа табуляции, т. Е. Сколько пробелов эквивалентно символу табуляции при отображении в буфере. Это не влияет на количество пробелов (или вкладок), используемых для отступа вашего кода.

Для кода Ruby отступы контролируются переменной ruby-indent-level:

(setq ruby-indent-level 4)
15 голосов
/ 22 января 2010

Другие постеры предоставили правильный ответ, поэтому я упомяну здесь, как выяснить ответ на этот вопрос.

Прежде всего, поскольку вы правильно предположили, что ширина отступа будет настраиваться, первое, что нужно попробовать:

M-x customize-group RET ruby-mode RET

И, конечно же, один из вариантов настройки - "Уровень отступа Ruby". Вы можете установить его и сохранить изменения. Готово! * * 1006

В качестве альтернативы вы можете посмотреть сам режим ruby:

M-x find-library RET ruby-mode RET

Затем найдите (с C-s) «отступ». Там вы найдете определение переменной:

(defcustom ruby-indent-level 2 ...)

Когда вы найдете такую ​​переменную, вы можете установить ее в вашем .emacs (или ~ / .emacs.d / init.el) с помощью setq:

(setq ruby-indent-level 4)

Вы также можете обнаружить эту переменную с помощью apropos:

M-x apropos RET indent ruby RET

Вот почему emacs описывается как "самодокументирующийся"!

3 голосов
/ 21 января 2010

Есть способ сделать это, не касаясь .emacs. Вы можете поместить специальный блок комментария в конец каждого файла Ruby, который устанавливает «файловые переменные» , специфичные для этого файла. Любой emacs или xemacs, редактирующий этот файл, будет использовать режим, настройки вкладок и т. Д. В этом блоке комментариев.

В качестве примера, вот блок «переменные файла», который мы используем для разработки на Ruby:

# Local Variables:
# mode: ruby
# tab-width: 2
# ruby-indent-level: 2
# indent-tabs-mode: nil
# End:
...