Zacząłem edytować wiele plików, które nie mają rozszerzeń, ale nadal są w formacie trybu głównego.
Jestem jedynym użytkownikiem Emacsa w zespole i nie chcę, aby boleśnie oczywiste było, że mój edytor potrzebuje specjalnych rzeczy. Chciałbym uniknąć zmiany bazy kodu.
- Nie mogę zmienić nazwy pliku
- Nie mogę używać specjalnych komentarzy Emacsa
Chciałbym, aby Emacs pamiętał, w jakim trybie ręcznie umieściłem plik na końcu (powiedzmy, z M-x conf-mode
) i automatycznie aktywował ten tryb, gdy ponownie go odwiedzę.
Używam savehist-mode
do radzenia sobie z wytrwałością.
Czy mogę to zrobić bezboleśnie?
major-mode
PythonNut
źródło
źródło
# -*- mode: conf -*-
i to wskazałoby Emacsa na użycieconf-mode
. Jeśli jest ich niewiele i możesz je dopasować za pomocą wyrażeń regularnych, możesz dodać wyrażenie regularne doautomode-alist
.auto-mode-alist
moje złe.Odpowiedzi:
Istnieje wiele sposobów identyfikowania głównego trybu dla pliku, który nie zależy od rozszerzenia, patrz Wybieranie trybów plików w instrukcji.
W zależności od rodzaju plików, z którymi masz do czynienia, być może możesz użyć
magic-mode-alist
. Pamiętaj też, żeauto-mode-alist
nie ogranicza się to do dopasowywania rozszerzeń: możesz dopasować dowolną część nazwy pliku lub ścieżki.Jeśli pliki, z którymi masz do czynienia, nie są wystarczająco spójne dla tych mechanizmów, jedną z opcji jest dodanie
auto-mode-alist
pozycji pasujących do całej nazwy pliku lub ścieżki katalogu głównego projektu i wywołanie funkcji niestandardowej w celu dopasowania nazw do trybów.Jeśli wszystkie pliki w danym katalogu są tego samego typu, można również użyć zmiennej lokalnej dla katalogu, aby ustawić tryb. Zmienne katalogowe można ustawić w pliku inicjującym zamiast w pliku .dir-locals - szczegółowe informacje można znaleźć w Zmiennych katalogowych .
Aktualizacja
Oto szybka próba zarządzania własną listą bezwzględnych nazw plików i głównych trybów.
źródło
auto-mode-alist
. Pewniemagic-mode-alist
w przyszłości będę pamiętać o czymś innym.Poniższe, oparte na radach Glucas, wydaje się działać idealnie.
źródło