如何在emacs javascript模式下更改缩进宽度

如何在emacs javascript模式下更改缩进宽度,javascript,emacs,indentation,Javascript,Emacs,Indentation,我想用2个空格代替4个空格。我可以使用以下命令更改C模式的默认行为: (setq c-basic-offset 2) 如何在javascript模式下更改此设置?js缩进级别可以在默认javascript模式下使用,默认情况下从emacs 23.2开始就包括此模式 (setq js-indent-level 2) 应该做你想做的事。如果您使用的是旧版本的emacs,则可能处于java模式。我认为此模式响应c-basic-offset,但我可能错了 我真希望有人早点告诉我海关的事!也许这会帮助

我想用2个空格代替4个空格。我可以使用以下命令更改C模式的默认行为:

(setq c-basic-offset 2)

如何在javascript模式下更改此设置?

js缩进级别
可以在默认javascript模式下使用,默认情况下从emacs 23.2开始就包括此模式

(setq js-indent-level 2)

应该做你想做的事。如果您使用的是旧版本的emacs,则可能处于java模式。我认为此模式响应
c-basic-offset
,但我可能错了

我真希望有人早点告诉我海关的事!也许这会帮助像我这样的凡人;)

调用自定义:

M-x customize
然后,选择“编程”,然后选择“语言”,然后选择要自定义的语言/模式。根据需要编辑选项。完成后,在我找到的javascript.el文件(/usr/share/emacs/site lisp)中选择“为当前会话保存”或“为未来会话保存”。

javascript缩进级别4

因此,如果使用相同的lisp模式,可以通过运行

(setq javascript-indent-level 2)

您可能还希望将emacs设置为使用空格而不是制表符

(setq-default indent-tabs-mode nil)
如果您使用的是js2模式(IMHO更强大),那么命令是:

(setq-default js2-basic-offset 2)
您也可以使用

M-x customize-variable
和类型

js-indent-level
js-
[TAB]显示选项列表)。然后根据需要更改
Js缩进级别
,然后单击
[状态:
并保存。

使用也可能是一个好主意。当然,Emacs有自己的模式


它也可以通过Melpa或果酱在package manager(
M-x package list packages
)中使用。

如果您想在每个文件的基础上更改它,请将其放在文件的顶部:

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

升级到Emacs 26后,这些解决方案对我都不起作用(我已经将
js缩进级别设置为2,但我的制表符宽度又回到了8),但起作用的是将
tab width
变量设置为
2
,这似乎取代了旧的
默认制表符宽度
变量


我在
M-x customize
中通过搜索
tab width

(setq default tab width 2)找到了这一点,它将是java模式的相应tab width setter。使用此机制,tab width保持为8,因此只有在缩进级别为4(2x4=8)或更高时才使用制表符。如何将制表符宽度设置为2或4,以便使用制表符而不是空格?我尝试了很多设置,例如(setq标签宽度4),但是没有效果。我的目标是:使用制表符宽度4,并且只使用制表符字符(不能用空格代替)。jdp:Try
(defun My javascript mode hook()(setq indent tabs mode t tab width 4 js indent level 4))(添加hook“javascript mode hook”My javascript mode hook)
。使用
js mode hook
,比如:
(defun My js mode hook()(setq缩进选项卡模式t选项卡宽度4 js缩进级别4))(添加钩子“js模式钩子”我的js模式钩子)
这在任何地方都有记录吗?有没有办法在没有stackoverflow的情况下找到这些信息?我在js模式下查看了
M-x h
,但在那里找不到任何东西。这更多的是一条评论,而不是实际答案。赢得更多的声誉以便能够发表评论。另一种方法可能是使用
M-x描述变量
+单击关于“定制”。