Как определить основной режим Emacs над #!

Я определил режим Python, который я хотел бы использовать для всех файлов.py. В том числе:

(add-to-list 'auto-mode-alist '("\\.py\\'" . my-python-mode))

правильно использует мой режим во всех файлах, заканчивающихся на.py, если этот файл не начинается с

#! /usr/bin/env python

какие файлы я работаю с. Как я могу сделать так, чтобы my-python-mode предпочитал режим python, который по умолчанию использует emacs?

1 ответ

Решение

Из руководства по emacs вам также необходимо обновить интерпретатор mode-alist

Есть запись

("python" . python-mode)

Также здесь можно добавить адд-лист

Во-вторых, если нет файловой переменной, задающей основной режим, Emacs проверяет, начинается ли содержимое файла с "#!". Если это так, это означает, что файл может служить в качестве исполняемой команды оболочки, которая работает, выполняя интерпретатор, названный в первой строке файла (остальная часть файла используется в качестве входных данных для интерпретатора). Поэтому Emacs пытается использовать имя интерпретатора для выбора режима. Например, файл, начинающийся с '#!/ Usr/bin/perl', открывается в режиме Perl. Переменная интерпретатор-mode-alist определяет соответствие между именами программ интерпретатора и основными режимами.

Другие вопросы по тегам