Antworten:
js-indent-level kann im Standard-Javascript-Modus verwendet werden, der standardmäßig ab Emacs 23.2 enthalten ist.
(setq js-indent-level 2)
sollte tun, was Sie suchen. Wenn Sie eine ältere Version von Emacs verwenden, befinden Sie sich möglicherweise im Java-Modus. Ich denke, dieser Modus reagiert darauf c-basic-offset, aber ich kann mich irren.
(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).
js-mode-hookwie (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)
M-x haus dem js-Modus reingeschaut, konnte dort aber nichts finden.
Ich wünschte, jemand hätte mir viel früher von Custom erzählt! Vielleicht hilft das einem anderen Sterblichen wie mir;)
Benutzerdefiniert aufrufen:
M-x customize
Wählen Sie dann "Programmieren" und dann "Sprachen" und wählen Sie dann eine Sprache / einen Modus zum Anpassen aus. Bearbeiten Sie die Optionen nach Belieben. Wenn Sie fertig sind, wählen Sie entweder "Für aktuelle Sitzung speichern" oder "Für zukünftige Sitzungen speichern".
Wenn Sie den js2-Modus verwenden (der meiner Meinung nach leistungsfähiger ist), lautet der Befehl:
(setq-default js2-basic-offset 2)
Die Verwendung von EditorConfig könnte ebenfalls eine gute Idee sein. Und natürlich hatte Emacs einen Modus dafür editorconfig-emacs .
Es ist auch im Paketmanager ( M-x package-list-packages) über Melpa oder Marmelade erhältlich.
Keine dieser Lösungen funktionierte für mich nach dem Upgrade auf Emacs 26 (ich hatte bereits js-indent-levelauf 2 gesetzt, aber meine Registerkartenbreite ging auf 8 zurück), aber was funktionierte, war das Setzen der tab-widthVariablen auf 2, was die alte default-tab-widthVariable zu ersetzen scheint .
Ich fand dies M-x customizedurch die Suche nach tab width.