Shell 每次 emacs 启动时自动执行脚本模式

Shell script mode automatically at each emacs start

每次编辑 bash 脚本时,我都会输入命令 M-x shell-script-mode。然后我得到很好的 shell 代码高亮显示。如何在每次启动 emacs 时自动获取它,这样我就不必键入命令。当我将 (shell-script-mode) 添加到 init.el 时,它没有帮助。

让 Emacs 为编辑文件的缓冲区设置所需的 模式 的最简单方法之一是在该文件的第一行包含特殊注释,例如对于 shell 脚本,您的第一行可能是:

# -*-sh-*-

对于脚本来说,在文件的第一行有一个解释器文件注释也是很常见的,或者甚至经常需要,这当然会排除 Emacs 模式注释,所以 Emacs 也会寻找解释器文件注释并将它们与主要模式相关联,因此 shell 脚本的第一行可能是:

#!/bin/sh

还有很多其他方法可以告诉 Emacs 在访问文件时如何设置缓冲模式。参见,例如,Emacs Manual: Choosing File Modes

您可以通过添加

将默认主要模式设置为您想要的任何模式
(setq-default major-mode 'shell-script-mode)

到你的初始文件。这将确保任何新创建的缓冲区都将在 shell-script-mode 中,除非以其他方式指定其模式(例如通过 auto-mode-alist)。这是否是个好主意,我不知道:我可能不希望它成为我的默认设置 - 但每个 her/his 拥有。