Emacs 实时模式切换

3
当编写shell脚本时(据我所知通常没有.*后缀),我通常会像以下这样做: 1)打开emacs foo 2)键入#!/bin/sh 3)关闭并重新打开emacs以启用shell-script主模式
有没有一种好方法可以避免执行第(3)步?我可以将M-x shell-script-mode绑定到某个键组合,但是否有一些通用的方法可以使用其标准规则使emacs重新评估模式?
2个回答

8
一般情况下,可以使用M-x normal-mode命令进行操作。

我在我的.emacs中使用(defalias 'nm'normal-mode)来使输入更快。 - Sean

0
将以下内容添加到您的.emacs文件中:
(add-hook 'after-save-hook
  '(lambda ()
     (if (not (executable-make-buffer-file-executable-if-script-p))
         (normal-mode))))

第一个位 executable-make-buffer-file-executable-if-script-p 不是你的问题的一部分,但也很有用:如果文件尚未可执行(如果看起来像脚本),它会使文件变为可执行。如果我们最终翻转了可执行位,那么我们也设置模式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接