2010-12-08 221 views
10

Emacsで自動インデントをグローバルに、または一部のモードでのみ無効にするには?Emacsで自動インデントを無効にする

RubyOnRails(ruby、html、js、css)用にいくつかのパッケージがインストールされています。

たとえば、CSSモードの自動入力を無効にしたいとしましょう。

+3

デフォルトで自動インデントはありません。私はまずあなたの質問を明確にすべきだと思います。 –

答えて

3

electricという単語を含む変数名を探したい場合があります。 (これは、特定の可視文字が入力されたときに自動的に発生するアクションのための共通のEmacsの用語である。)この場合

MXのapropos-variableRETelectricRETリストを含むcss-electric-keys変数があることを私に示しています「再インデントを引き起こす自己挿入キー」の

あなたはnilにこのリストを設定するか、またはあなたのinitファイルに(setq css-electric-keys nil)を追加するM-Xcustomize-variableRETcss-electric-keysRETを使用することができます。

電気的な動作を実装するためにマイナーモードが使用されることがあります。そのため、オンとオフを簡単に切り替えることができます。それらはおそらくapropos-commandのMxを介したRETelectricRET見られる、とあなたはおそらく、電気マイナーモードはこれと同様に、無効にされたことを確認するために、主要なモードフックを使用します。

(add-hook 'MAJORMODE-mode-hook 'my-MAJORMODE-mode-hook) 
(defun my-MAJORMODE-mode-hook() 
    (ELECTRICMODE-mode 0)) 
+0

最後のELECTRICMODEモードの例でどのような用語を使用するのですか? JavaScriptファイルで自動インデントをオフにするのに問題があります。残念ながら、JSに関する他の提案には何の不運もありませんでした。 – Malvineous

+4

私のベストプラクティスは、Emacsの自己文書化の本質と、この機能を中心としたコマンドで可能な限り慣れ親しむことです。 javascriptモードでは、 'Mx find-function RET javascript-mode RET'を使って、それを定義するソースファイルを開き、単に" auto "を検索し、この変数で適切なヒットを素早く見つけました:' Ch v js- indent-flag RET'(これはカスタマイズ可能なので、 'Mx customize-group RET js RET'を使っても見つけられました(" javascript "はもっと良いでしょうが、" js "はかなり明白な第二の推測でした)。 – phils

+0

同様に、 'Mx apropos-variable RET indent RET'は' 'js-auto-indent-flag'変数を発見するでしょう。ヘルプのセクション: 'M-:(info(emacs)Help")RET'。このようなものを見つけ出す方法については、一度手直しすれば、カスタマイズがはるかに簡単になる。 – phils

1

emacs 24.xの場合、Mxelectric-indent-modeは無効にしたい動作をトグルしました。

FWIW、動作がRETはとりわけ、そのコマンドの動作はelectric-indent-modeによって変更されています... simple.elで定義されているコマンドnewlineに結合させたということでした。

+0

次回のEnterキーは私がしたいことをして、それが縛られている機能/コマンドを知るために 'Ch k RET'だけを覚えています。 – daveloyall

関連する問題