emacs JavaScriptモードでインデント幅を変更する方法


120

インデントに4ではなく2つのスペースを使用したいのですが、Cモードのデフォルトの動作を次のように変更できます。

(setq c-basic-offset 2)

JavaScriptモードでこれを変更するにはどうすればよいですか?

回答:


198

js-indent-level emacs 23.2からデフォルトで組み込まれているデフォルトのjavascript-modeで使用できます。

(setq js-indent-level 2)

あなたが探していることをする必要があります。古いバージョンのemacsを使用している場合は、javaモードになっている可能性があります。このモードはに反応すると思いますがc-basic-offset、私は間違っているかもしれません。


2
(setq default-tab-width 2)は、Javaモードの対応するタブ幅セッターになります
Fergie

このメカニズムを使用すると、タブの幅は8のままなので、インデントレベルが4(2x4 = 8)以上の場合にのみタブが使用されます。タブ幅を2または4に設​​定して、スペースではなくタブを使用するにはどうすればよいですか?たとえば、(setq tab-width 4)などの設定をいくつか試しましたが、役に立ちませんでした。私の目標:タブ幅4を使用し、タブ文字のみを使用します(代わりにスペースを使用しないでください)。
jdp

jdp:試してください(defun my-javascript-mode-hook () (setq indent-tabs-mode t tab-width 4 js-indent-level 4)) (add-hook 'javascript-mode-hook 'my-javascript-mode-hook)
フィル、2014年

次のjs-mode-hookように使用します:(defun my-js-mode-hook () (setq indent-tabs-mode t tab-width 4 js-indent-level 4)) (add-hook 'js-mode-hook 'my-js-mode-hook)
skeltoac '19 / 11/14

6
これはどこかに文書化されていますか?スタックオーバーフローなしでこの情報を見つける方法はありましたか?M-x hjs-modeから調べましたが、何も見つかりませんでした。
Charles Holbrow、2015

75

誰かがもっと早くカスタムについて教えてくれればいいのに!おそらくこれは私のようなもう一人の死すべき者を助けるでしょう;)

カスタムを呼び出す:

M-x customize

次に、[プログラミング]、[言語]の順に選択し、カスタマイズする言語/モードを選択します。必要に応じてオプションを編集します。完了したら、「現在のセッション用に保存」または「将来のセッション用に保存」を選択します。



11

タブではなくスペースを使用するようにemacsを設定することもできます

(setq-default indent-tabs-mode nil)

これは実際の答えよりもコメントです。コメントできるようになると、より多くの評判を獲得できます。
jcubic 2014年

2

私のjavascript.elファイル(/ usr / share / emacs / site-lisp)で見つけました

javascript-indent-level 4

したがって、同じlispモードを使用している場合は、次のコマンドを実行して変更できます。

(setq javascript-indent-level 2)

2

あなたも使うことができます

M-x customize-variable

そしてタイプ

js-indent-level

js-[TAB]はオプションのリストを表示します)。次に、必要に応じてを変更し、Js Indent Levelクリック[State:]して保存します。


2

EditorConfigを使用するのも良い考えです。そしてもちろん、Emacsにはそれのためのモードがありましたeditorconfig-emacs

M-x package-list-packagesMelpaまたはMarmaladeを介してパッケージマネージャー()でも利用できます。


2

ファイルごとに変更したい場合は、これをファイルの先頭に置きます。

// -*- mode: js; js-indent-level: 2; -*-

0

これらのソリューションのいずれもが、Emacsの26にアップグレードした後、私のために働いていない(私はすでにしていたjs-indent-level2に設定されていますが、私の8に戻った幅タブ)が、仕事が設定された何をしたかtab-widthの変数2古い置き換えるように見える、default-tab-width変数を。

私はM-x customizeを検索してこれを見つけましたtab width

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.