при объявлении режима emacs файл должен быть открыт в

как я могу записать как комментарий в файле, режим, что этот конкретный файл должен быть открыт с в emacs? например, предположите, что у меня есть сценарий, названный "нечто". В теле нечто я хотел бы поместить что-то как:

# sh-mode
# rest of my script here...

к emacs, что "sh-режим" должен использоваться, когда "нечто" открыто в emacs. Отметьте, я не хочу делать это расширением файла от .emacs. Точка здесь - то, что имя файла "нечто" не говорит, какой файл это - я хочу, чтобы это было определено из самого файла. Существует ли способ сделать это?

Спасибо.

11
задан 7 March 2010 в 17:35
поделиться

4 ответа

Я обычно добавляю что-то вроде:

# -*- mode: sh -*-

вверху файла. См. документацию по emacs для получения дополнительной информации.

24
ответ дан 3 December 2019 в 01:44
поделиться

Обратите внимание, что Emacs также правильно определит тип файла, если первая строка - это хэш-банг комментарий, например,

#!/bin/sh
7
ответ дан 3 December 2019 в 01:44
поделиться

Также см. Magic-mode-alist.

magic-mode-alist is a variable defined in `files.el'.

Documentation:
Alist of buffer beginnings vs. corresponding major mode functions.
Each element looks like (REGEXP . FUNCTION) or (MATCH-FUNCTION . FUNCTION).
After visiting a file, if REGEXP matches the text at the beginning of the
buffer, or calling MATCH-FUNCTION returns non-nil, `normal-mode' will
call FUNCTION rather than allowing `auto-mode-alist' to decide the buffer's
major mode.

If FUNCTION is nil, then it is not called.  (That is a way of saying
"allow `auto-mode-alist' to decide for these files.")
2
ответ дан 3 December 2019 в 01:44
поделиться

вы можете указать локальную переменную файла, которую emacs использует в первой или второй строке любого файла (и других).

Подробнее см .: http://www.gnu.org/software/emacs/manual/html_node/emacs/Specifying-File-Variables.html#Specifying-File-Variables

Итак, для вашего случай, который можно использовать:

# -*- mode: sh; -*-

Наслаждайтесь!

4
ответ дан 3 December 2019 в 01:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: