ウェブモードを常にスペースでインデントする


10

emacs web-modeを使用していますが、JSファイルのタブが異常に動作しているようです。

タブを2つのスペースにインデントするように設定していますが、インデントが8つのスペースに達すると、Webモードはそれらをタブに変換し、次に別の8つに達するまでタブ2スペースを続け、それを別のタブに変換します。

これが起こらないようにして、emacs / web-modeにスペースのインデントのみを指示することはできますか?

編集:

次に、ネストされた関数の例を示します。

(function() {
  function() {
    function() {
      function() {
    function() {
      // Indenting problem.
    }
      }
    }
  }
})()

Emacsでは明らかに問題なく表示されていますが、インデントの問題はこちらで確認できます。

これはjavascript-modeでも発生することに注意してください。


1
これはWebモードに固有ですか?それともどこで起こりますか?
Malabarba 2014年

これはWebモードでのみ発生し、他のすべてのタブは無期限にスペースで正常に機能します。
dieuwe 2014年

JavaScriptモードでも同じことができます。しかし、それはそれら2つだけです。
dieuwe 2014年

あなたjavascript-modeはどちらを使っていますか、組み込みのものですか?また、これはhtmlをインデントするときに起こりweb-modeますか?
2014年

initファイルの内容を投稿してください。Emacsはデフォルトで8つのスペースにタブを使用するので、ほとんどのモードでそれをオフにするにはあなたのinitファイルに何かがなければなりません。
Gilles「SO-邪悪なことをやめなさい」

回答:


10

一般的に、インデントにスペースのみを使用したい場合は、以下をカスタマイズすることをお勧めします。

(setq-default indent-tabs-mode nil)

これにより、インデントはスペースを使用し、タブは使用しません。web-modeただし、インデントに通常の方法を使用するかどうかは不明なので、これを尊重しない可能性があります。

デモ用のサンプルファイルを提供できますか?


3
質問に例を追加しました。追加(setq indent-tabs-mode nil)してもとの両方web-modeで何も変更されないようですjavascript-mode
dieuwe 2014年

3
バッファローカルなsetq-defaultので使うべきだと思いますindent-tabs-mode
nperson325681 2014年

@progoわかりました。どうもありがとうございます。
dieuwe 2014年

1
タブのみでインデントすることは可能ですか?別の設定を試しましたが、タブ/スペースが混在している場合にのみインデントされます。
Dfr 2014年

1
@Dfrあなたは追加する必要(setq-default indent-tabs-mode t)があります.emacs
fxbois 2015

3

emacs構成ファイルでこのコードを試して、Webモードのインデントを強制してください。私はそれを参照したウェブ・モードのホームページから。

(require 'web-mode)
(defun my-web-mode-hook ()
  "Hooks for Web mode."
  (setq web-mode-markup-indent-offset 2)
)
(add-hook 'web-mode-hook  'my-web-mode-hook)

これも機能しますか?(add-hook 'web-mode-hook (lambda () (setq web-mode-markup-indent-offset 2)))
Andrew Lamarra 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.