специфичный для проекта файл инициализации

10

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

Коннор
источник

Ответы:

17

Возможно, вы захотите взглянуть на переменные каталога . По сути, вам нужно создать .dir-locals.elфайл в корневом каталоге вашего проекта со всеми настройками проекта. Теперь, когда вы открываете файл в каталоге или любом из его подкаталогов, emacs будет применять настройки в .dir-locals.elфайле.

Например, предположим, что вы хотите использовать команду make package installas compile только в проекте A, вам нужно создать файл с именем .dir-locals.el в корневом каталоге проекта и добавить что-то вроде следующего

((nil . ((compile-command . "make package install"))))

Отныне всякий раз, когда вы запускаете compileкоманду из любого файла в каталоге A, по умолчанию compile-commandбудет тот, который указан выше, однако compile commandдля файлов за пределами каталога A останется нетронутым.

Икбал Ансари
источник
2

Менее функциональной альтернативой .dir-locals.elявляется стандарт EditorConfig , который имеет пакет emacs . Он не поддерживает почти столько же параметров, но позволяет команде людей стандартизировать некоторые параметры и использовать их в разных редакторах.

Он ведет себя примерно так же, с .editorconfigфайлом конкретного проекта на верхнем уровне.

Ли Х
источник