Pracuję nad wieloma różnymi projektami C z unikalnymi stylami wcięć. Jak zmusić Emacsa do wprowadzenia ustawień wcięcia dla poszczególnych projektów bez zanieczyszczania .dir-locals.el
plików projektu wcześniejszymi plikami? Chcę dopasować projekty przy użyciu ich ścieżek na dysku.
indentation
artagnon
źródło
źródło
.dir-locals.el
. Może współpracownicy chcieliby ten pomysł?Odpowiedzi:
.dir-locals.el
jest moją preferowaną metodą, gdy jest to możliwe, zwłaszcza, że dotyczy wszystkich użytkowników Emacsa pracujących nad tym projektem.W przypadku projektów, które są wrogie dla użytkowników Emacsa lub w inny sposób nie chcą
.dir-locals.el
plików, lub jeśli chcesz mieć osobiste preferencje (prawdopodobnie nie wcięcia), które nie powinny mieć zastosowania do innych osób, jeśli używasz rozproszonego systemu kontroli wersji, opcja jest aby zawsze pracować na osobistych oddziałach, które mają twoje.dir-locals.el
. Jednak nie znam sposobu na użycie DCVS, który sprawia, że jest to bezbolesne.Inną opcją jest nie rejestrowanie
.dir-locals.el
plików. Na przykład za pomocą git dodaj go do.git/info/exclude
. Oczywiście jest to bolesne, gdy masz wiele realizacji projektu.To, co zrobiłem tam, gdzie
.dir-locals.el
nie było opcji, to dodanie haka, który sprawdzabuffer-file-name
znane wartości.(Ostrzeżenie: kod wpisany bezpośrednio w mojej przeglądarce, ponieważ nie mam teraz dostępu do mojego prawdziwego kodu).
źródło
.dir-locals.el
do.git/info/exclude
wydaje się dobrą opcją..gitignore
katalogu głównego projektu?.dir-locals.el
do swojego globalnego gitignore na stronie~/.config/git/ignore
.Nie możesz przekonać projektów typu upstream, takich jak llvm i linux, do sprawdzenia w
.dir-locals.el
.Opracowane rozwiązanie problemu:
Używany w następujący sposób:
Mam podobne makro dla innych trybów językowych.
źródło
rozpowszechnianie .dir-locals.el w różnych projektach jest trudne do utrzymania.
Moja droga jest dość prosta, umieść cały kod w jednym ~ / .custom.el.
Zasadniczo kod będzie uruchamiany w trybie przechwytującym prog-mode (lub w trybie przechwytującym dowolny tryb główny) i wykonuje następujące czynności:
Od roku z powodzeniem stosuję tę metodę.
Oto kod (wywołaj my-setup-develop-environment w prog-mode-hook):
źródło
Normalnym sposobem na to jest użycie
.dir-locals
. Właśnie dlatego zostały wprowadzone w pierwszej kolejności. Dlaczego nie? O ile mi wiadomo, większość narzędzi związanych z projektami zazwyczaj utrzymuje swoje konfiguracje w głównym katalogu projektu: git, svn, Eclipse i wiele innych…Po prostu nie zapomnij dodać pliku
.gitignore
lub podobnego.źródło
Używam guess-style.el .
Radzi sobie dobrze z odgadnięciem preferowanego stylu wcięcia pliku.
źródło