Emacs: Как связать разные конфигурации инициализации с разными форматами файлов?

Как лучше всего связать расширения файлов с моими собственными настройками? Например, когда я открываю файл .py, фрейм будет больше и разделен на 2 окна, но при открытии файла .tex фрейм будет меньше всего с одним окном. Должен ли я разделить свой .emacs и записать все конфигурации, связанные с python, в файл .el (привязки клавиш, оболочка python = ipython и т. Д.) И для латекса в другом файле .el (загрузить auctex, pdf mode = default и т. Д.) ...)? Как мне «вызвать» файлы и заставить их работать должным образом (если это возможно и хорошее решение)?


person Allan Felipe    schedule 27.11.2014    source источник
comment
Вы говорите об инициализации, как при запуске Emacs с emacs foo.py vs emacs foo.tex (при этом не затрагиваются последующие действия, такие как C-x C-f bar.py)? Или вы хотите, чтобы что-то (потенциально) происходило каждый раз, когда вы каким-либо образом посещаете файл .py или .tex? Если это последнее, я думаю, вам нужно рассмотреть свои требования более подробно (но в большинстве случаев вы должны использовать хуки основного режима для оценки кода, специфичного для каждого основного режима, когда этот режим вызывается в любом буфере; или, возможно, find-file-hook, чтобы действовать на посещенные файлы независимо от режима).   -  person phils    schedule 27.11.2014
comment
Большинство задач, которые я хочу выполнить с помощью emacs (связанных с моим вопросом), относятся ко второму типу, который вы описали, поэтому решением будут проблемы с основными режимами. Однако есть некоторые из них, например конфигурация окон. Я бы не хотел, чтобы размер и положение окна менялись каждый раз, когда я меняю основной режим, это будет только при запуске emacs с помощью emacs file.py   -  person Allan Felipe    schedule 28.11.2014


Ответы (1)


(Во-первых, +1 к комментарию @ phils. Вы получите лучшую помощь, если будете более конкретны в том, что вам нужно / что вы хотите.)

В зависимости от того, что вам нужно / нужно, см. Также переменную (не вариант) file-name-handler-alist. Возможно, он вам не понадобится, но может.

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

См. (Elisp) Magic File Names для получения дополнительной информации. Информация.

person Drew    schedule 27.11.2014