specyficzny dla projektu plik inicjujący

10

Mam kilka dostosowań emacsa, których chciałbym użyć w jednym projekcie, ale nie wpływam globalnie na emacsa. Czy jest jakiś sposób, aby emacs ładował określony plik init po uruchomieniu z określonego katalogu lub automatycznie ładował wszystkie pliki init w katalogu, z którego został uruchomiony?

Connor
źródło

Odpowiedzi:

17

Możesz rzucić okiem na zmienne katalogu . Zasadniczo musisz utworzyć .dir-locals.elplik w katalogu głównym projektu ze wszystkimi ustawieniami specyficznymi dla projektu. Teraz za każdym razem, gdy otwierasz plik w katalogu lub w dowolnym jego podkatalogu, emacs zastosuje ustawienia w .dir-locals.elpliku.

Załóżmy na przykład, że chcesz użyć polecenia make package installas compile tylko w projekcie A, musisz utworzyć plik o nazwie .dir-locals.el w katalogu głównym projektu i dodać coś w stylu:

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

Odtąd za każdym razem, gdy uruchomisz compilepolecenie z dowolnego pliku w katalogu A, domyślnym compile-commandbędzie ten określony powyżej, jednak compile commanddla plików spoza katalogu A pozostanie niezmieniony.

Iqbal Ansari
źródło
2

Mniej polecaną alternatywą .dir-locals.eljest standard EditorConfig , który zawiera pakiet emacs . Nie obsługuje prawie tylu opcji, pozwala jednak zespołowi na ustandaryzowanie niektórych ustawień i używanie ich w różnych edytorach.

Zachowuje się bardzo podobnie, z .editorconfigplikiem specyficznym dla projektu na najwyższym poziomie.

Lee H.
źródło