Jak zachować lokalne zmienne dir podczas przełączania trybów głównych?
Zobowiązuję się do projektu, w którym standardowe wcięcia i zakładki są 3-znakowe i używają kombinacji HTML, PHP i JavaScript. Ponieważ używam Emacsa do wszystkiego i chcę tylko 3-znakowego wcięcia dla tego projektu, ustawiłem plik „.dir-locals.el” w katalogu głównym projektu, aby zastosować go do wszystkich plików / wszystkich trybów pod nim:
; Match projets's default indent of 3 spaces per level- and don't add tabs
(
(nil .
(
(tab-width . 3)
(c-basic-offset . 3)
(indent-tabs-mode . nil)
))
)
Co działa dobrze po pierwszym otwarciu pliku. Problem pojawia się podczas przełączania trybów głównych - na przykład w celu pracy nad fragmentem dosłownego HTML wewnątrz pliku PHP. Potem tracę wszystkie zmienne lokalne dir.
Próbowałem też jawnie podać wszystkie tryby, których używam w „.dir-locals.el” i dodając do mojego pliku .emacs „dir-locals-set-class-variables / dir-locals-set-directory-class „ Cieszę się, że wszyscy zachowują się konsekwentnie, początkowo ustawiając lokalne zmienne dir, a następnie tracąc je, gdy przełączam tryb główny.
Używam GNU Emacs 24.3.1.
Jaki jest elegancki sposób przeładowywania zmiennych lokalnych dir po przełączeniu trybu głównego bufora?
- edit - Dziękujemy za doskonałe odpowiedzi i komentarze zarówno Aaron jak i phils! Po opublikowaniu tutaj pomyślałem, że „pachnie” jak błąd, więc wpisanie raportu do GNU- wyśle im odniesienie do tych dyskusji.