9

以前の投稿から、EmacsでRubyモードが機能するようになりました。これはうまく機能しています。

macruby開発用の.emacsファイルの設定

私たちの会社では、デフォルトの2ではなく、インデントに4つのスペースを使用しています。これを機能させるのに問題があります。

これが私の.emacsファイルです

(リストに追加'ロードパス"〜/ rdoc-mode.el")

('ruby-modeが必要)

(setq indent-tabs-mode nil); タブは常にスペースに置き換えてください

(setq-デフォルトのタブ幅4); すべてのバッファのタブ幅を4に設定します

誰かが私が間違っていることを見ていますか?

ありがとう!

4

3 に答える 3

18

このtab-width設定は、タブ文字の幅のみを制御します。つまり、タブ文字がバッファに表示されるときに相当するスペースの数です。コードのインデントに使用されるスペース (またはタブ) の数には影響しません。

Ruby コードの場合、インデントはruby-indent-level変数によって制御されます。

(setq ruby-indent-level 4)
于 2010-01-21T16:52:52.227 に答える
15

他の投稿者が正しい答えを提供しているので、この種の質問に対する答えを見つける方法をここで説明します。

まず、インデント幅が構成可能であると正しく想定したので、最初に試すことは次のとおりです。

M-x customize-group RET ruby-mode RET

案の定、そこにあるカスタマイズ オプションの 1 つに「Ruby Indent Level」があります。設定して変更を保存できます。終わり!

別の方法として、ruby-mode 自体を確認することもできます。

M-x find-library RET ruby-mode RET

次に、'indent' を (Cs で) 検索します。そこに変数定義があります。

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

そのような変数を見つけたら、setq を使用して .emacs (または ~/.emacs.d/init.el) に設定できます。

(setq ruby-indent-level 4)

apropos を使用してその変数を検出することもできます。

M-x apropos RET indent ruby RET

そのため、emacs は「自己文書化」と表現されています。

于 2010-01-22T10:53:00.667 に答える
3

.emacs に触れずにそれを行う方法があります。各 Ruby ファイルの末尾に、そのファイルに固有の「ファイル変数」を設定する特別なコメント ブロックを配置できます。そのファイルを編集するemacsまたはxemacsは、そのコメントブロックのモード、タブ設定などを使用します。

例として、Ruby 開発に使用する「ファイル変数」ブロックを次に示します。

# Local Variables:
# mode: ruby
# tab-width: 2
# ruby-indent-level: 2
# indent-tabs-mode: nil
# End:
于 2010-01-21T17:00:39.323 に答える