Ruby-on-rails – change emacs ruby-mode indent to 4 spaces

dot-emacsemacsrubyruby-on-rails

From a previous post I got Ruby mode working in emacs. This is working great.

Setting up .emacs file for mac ruby development

Our company uses 4 spaces for indents though instead of the default 2. I am having difficulty getting this to work.

Here is my .emacs file

(add-to-list 'load-path "~/rdoc-mode.el")

(require 'ruby-mode)

(setq indent-tabs-mode nil) ; always replace tabs with spaces

(setq-default tab-width 4) ; set tab width to 4 for all buffers

Does anyone see what I am doing wrong?

Thanks!

Best Answer

The tab-width setting only controls the width of a tab character, i.e. how many spaces a tab character is equivalent to when displayed in your buffer. It does not affect the number of spaces (or tabs) used for indenting your code.

For Ruby code, the indentation is controlled by the ruby-indent-level variable:

(setq ruby-indent-level 4)