我有一些文件本身不是shell脚本,而是设计为由shell脚本提供的。因此,文件名与auto-mode-alist中的任何模式不匹配(我也不想尝试对每个文件进行更新)。
当我编辑一个bash脚本(例如,foo.bash)时,emacs正确地演绎了shell,模式行显示了Shell-script[bash]。我认为,无论是基于文件名还是基于shebang行,都是无关紧要的。我想对我的“非脚本”脚本文件强制这种行为。
我想出来的是:
# -*- mode: Shell-script; eval (sh_set_shell "bash"); -*-但这对eval提出了警告(这是正确的)。否则我如何为Shell-script模式设置方言?
发布于 2021-10-15 10:10:39
除了主要模式之外,还可以使用文件局部变量块并设置sh-shell:
# Local Variables:
# mode: shell-script
# sh-shell: bash
# End:如果您不喜欢这个大的(更易读的:)块,一个班轮将执行niceley (下面的@jwm注释):
# -*- mode: Shell-script; sh_shell: "bash"; -*-Nota Bene:根据文档,使用文件局部变量sh-shell等效于调用sh-set-shell,以及设置此方法的预定方式:
Shell脚本文件可以通过具有“`sh shell”文件局部变量的“`sh shell”文件局部变量在访问该文件时自动调用该函数,该变量的值为shell名称(不要引用它)。
https://stackoverflow.com/questions/69576178
复制相似问题