Изменение режима Emacs на лету - PullRequest
3 голосов
/ 09 января 2012

При написании сценариев оболочки (которые, насколько мне известно, обычно не имеют * суффикса), я обычно делаю что-то вроде следующего:

1) emacs foo 2) Введите #! / Bin / sh 3) Закройте и снова откройте emacs, чтобы основной режим shell-скрипта был включен

Есть ли какой-нибудь хороший способ, чтобы мне не нужно было выполнять шаг (3)? Я мог бы связать M-x shell-script-mode с некоторой комбинацией клавиш, но есть ли какой-нибудь общий способ заставить emacs переоценить режим, используя его стандартный набор правил?

Ответы [ 2 ]

8 голосов
/ 09 января 2012

Общий способ сделать это будет M-x normal-mode

0 голосов
/ 13 января 2012

Добавьте это к вам .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 не был частью вашего вопроса, но также полезен: он делает исполняемый файл, если он еще не был (если он выглядит как скрипт). Если мы в конечном итоге перевернем исполняемый бит, то мы также установим режим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...