设置shell脚本功能的缩进


11

我正在尝试设置每个缩进的空格数,以便在sh-mode(bash子模式)下启动新功能。我尝试设置:

'(sh-basic-offset 2)
'(sh-indentation 2)
'(smie-indent-basic 2)

(在如图所示custom-set-variables.emacs)和其他一些为好,但他们都没有任何效果!


设置变量的方法不是通过custom-set-variables(这是Customize在内部使用的东西,而并非手工使用)。最好使用(setq sh-basic-offset 2)
Stefan's

Answers:


7

设置sh-basic-offset为必需的缩进是必需的-但是我没有意识到的是,在自定义生效之前,还必须关闭并重新打开所有Shell脚本文件。我不记得曾经在emacs中这样做。


1
更改之后.emacs,您必须退出emacs并重新启动它,或使用M-x load-file重新加载您.emacs的文件。如果您要重新加载在编辑器中打开的文件,可以说C-x C-v RETURN“重新访问”它。
亚历克斯L

@AlexL加载文件在这种特殊情况下不起作用。就像我说的那样,这很不寻常。通常,简单地自定义变量就足够了。
罗宾·格林

嗯...你知道为什么会是@ robin-green吗?我很好奇。
亚历克斯L

您也可以使用M-x set-variable。如果你只想改变这个为缓冲你工作
kotakotakota

1

我将basic-offset设置为2,但是似乎没有用,我回头按下C-h v sh-<TAB>并意识到有一个sh-indentation我将该变量设置为2,现在一切似乎都像个魅力。


请阐明“ set-basic-offset”的含义,并确切说明如何 “将该变量设置为2”。
Stefan

该论坛省略了选项卡,因为我放置在大于和小于字符之间。Ch v sh-“按Tab”自动完成功能将显示变量列表。
Albaro Pereyra

我已经修复了您的标记,但是您的评论仍然没有说明您所说的“ set-basic-offset”或“ 如何将该变量设置为2”。
Stefan's

自26.1起,此变量已过时,请sh-basic-offset改用。
goetzc

0

我和Albaro有相同的经验:设置sh-basic-offset无效,但是设置sh-indentation可以正常工作。

就我而言,我(setq sh-basic-offset 2)使用emacs 进行了评估,例如。通过Mx eval-expression。我在跑步GNU Emacs 25.2.2 (x86_64-pc-linux-gnu, GTK+ Version 3.22.21) of 2017-09-22, modified by Debian。我的主要模式是Shell-script。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.