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

Кой е най-добрият начин да свържа файловите разширения с моите собствени персонализации? Например, когато отворя .py файл, рамката ще бъде по-голяма и ще бъде разделена на 2 прозореца, но когато се отвори .tex файл, рамката ще бъде по-малка само с един прозорец. Трябва ли да разделя моя .emacs и да напиша всички конфигурации, свързани с python, в .el файл (обвързвания на клавиши, обвивка на python = ipython и т.н.) и за латекс в друг .el файл (заредете auctex, pdf режим = по подразбиране и т.н. ...)? Как бих "извикал" файловете и да ги накарам да работят правилно (ако това е възможно и добро решение)?


person Allan Felipe    schedule 27.11.2014    source източник
comment
Говорите ли за инициализация, както при стартиране на Emacs с emacs foo.py срещу emacs foo.tex (като следващите действия, като C-x C-f bar.py, не са засегнати)? Или искате специални неща (потенциално) да се случват всеки път, когато посетите .py файл или .tex файл по някакъв начин? Ако е последното, мисля, че трябва да обмислите изискванията си по-подробно (но най-общо бихте използвали кукички за основен режим, за да оцените код, специфичен за всеки основен режим, когато този режим се извиква във всеки буфер; или може би find-file-hook, за да действате върху посетени файлове независимо от режима).   -  person phils    schedule 27.11.2014
comment
Повечето от задачите, които искам emacs да изпълнява (свързани с въпроса ми), са вторият вид, който описахте, така че кукичките за основен режим биха били решението. Има обаче някои от първия вид, например конфигурацията на windows. Не бих искал размерът и позицията на прозореца да се променят всеки път, когато променя основния режим, би било само когато стартирам 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