emacs - 按RET时停止向当前行和下一行添加缩进

时间:2014-12-08 22:03:53

标签: emacs indentation major-mode

我打开了一个名为test.scss的文件,当我在一行上按RET时,emacs会在当前行添加2个空格,在下一行添加4个空格。

我已使用whitespace-mode突出显示了该文件的内容。

在按RET之前

enter image description here

按RET后

enter image description here

您可以看到.my-element行自动缩进了2个空格,新行缩进了4个空格太多。

我希望输出看起来像这样

所需输出

enter image description here

如何让emacs产生我想要的输出?

以下是describe-mode的输出:

Enabled minor modes: Auto-Composition Auto-Compression Auto-Encryption                 
Electric-Indent File-Name-Shadow Font-Lock Global-Eldoc                                
Global-Font-Lock Line-Number Menu-Bar Tooltip Whitespace                               

(Information about these minor modes follows the major mode info.)

SCSS mode defined in `css-mode.el':
Major mode to edit "Sassy CSS" files.

In addition to any hooks its parent mode `css-mode' might have run,
this mode runs the hook `scss-mode-hook', as the final step
during initialization.

虽然在这种情况下我处于scss模式,但我看到与我使用的大多数其他模式类似的行为,例如ruby-modesgml-modejs.el模式等。我想使行为与上面显示的所需输出相匹配。

1 个答案:

答案 0 :(得分:2)

每种模式都可以以自己的方式处理缩进,您可能必须寻找特定于模式的设置才能在任何地方使用双空缩进。

对于初学者,您可以设置css-indent-offset,其中应包含css-modescss-mode

(setq css-indent-offset 2)

您可以类似地设置许多其他模式的基本缩进。 ruby-mode似乎使用ruby-indent-levelsgml-mode使用sgml-basic-offsetjs-mode使用js-indent-level