Dlaczego emacs nie działa (set-face-attribute…) w init.el, mimo że reszta bufora jest wykonywana?

3

Mam (set-face-attribute 'default nil :height 100)plik init.el, ponieważ domyślny rozmiar czcionki jest nieco za duży. Jednak nie zostanie ono wykonane po załadowaniu emacsa.

Nie mam init.elcpliku, który nie jest reprezentatywną zaktualizowaną wersją mojego init.eli wiem, że reszta mojego pliku init.eljest wykonywana.

Po tym nie ma innych (set-face-attribute ...)sexpsów, które mogłyby go nadpisać.

Wracając do mojego init.elpo załadowaniu emacsa i wykonaniu go sam ustawiam właściwość poprawnie (tj. Dla wszystkich buforów (ale nie nowych ramek), na stałe)

Kałamarnica
źródło
Chociaż init.elnie zastępujesz go, nadal może nie mieć żadnego efektu. Być może set-face-attributejest właściwość na bufor? (To wszystko z pamięci). Możesz spróbować umieścić polecenie w zaczepie, który zostanie wykonany później.
Alexis
2
Kod jest poprawny. Spróbuj użyć tylko tego w pliku init i wyeliminuj wszystkie inne kody i pakiety. Jeśli to działa, to znaczy (z pustym init z wyjątkiem set-face-attribute . . .), to masz konflikt z czymś innym w innych ustawieniach. Jeśli masz już ochotę na inne możliwe set-face-attributei nic nie wymyślisz , a jeśli wyłączyłeś swoje motywy kolorów, będziesz musiał powoli włączać pozostałe ustawienia, aż znajdziesz konflikt. Poszukaj również ustawień ramki ze specyfikacjami czcionek, takich jak default-frame-alist.
lista prawników

Odpowiedzi:

3

Po wycięciu kawałków z mojego pliku konfiguracyjnego odkryłem, że było to spowodowane (add-to-list 'default-frame-alist '(font . "DejaVu Sans Mono-12")).

Powodem dla którego pomijałem to wcześniej było to, że działałem (set-face-attribute 'default nil :height 100)na samym końcu mojego pliku init.

Rozwiązaniem jest zmiana płci, która zmienia się default-frame-alistna (add-to-list 'default-frame-alist '(font . "DejaVu Sans Mono-12") '(height . 100)), i usunięcie tej, która bezpośrednio zmienia atrybut twarzy

Kałamarnica
źródło
1
1. Powinieneś zaakceptować własną odpowiedź, jeśli jest odpowiednia. 2. Dlaczego nie dostosowujesz default-frame-alist( M-x customize-option) zamiast bawić się nim przy użyciu Lisp w pliku init? Jest to opcja użytkownika z jakiegoś powodu.
Drew
Ponieważ wydaje się, że nie działa jeszcze tak, jak powinien. Nie wróciłem jeszcze do edycji odpowiedzi. Jeśli chodzi o elisp, wolę to od dostosowania - myślę, że każda z opcji jest poprawna, i wolę podejście elisp.
Squidly
0

To jest stary wątek, ale miałem ten sam problem i udało mi się go naprawić. Widzę, że Ty również to zrobiłeś, ale chciałeś wesprzeć moje rozwiązanie, ponieważ nie znalazłem go nigdzie indziej.

Właśnie dodałem następujący wiersz do mojego ~ / .emacs.d / init.el:

(add-hook 'find-file-hook (lambda () (set-face-attribute 'default nil :height 105)))

I zadziałało. Propozycje do Alexis w komentarzach do OP dla sugestii.

preskitt91
źródło
Czy to nie prowadzi do nieprawidłowego rozmiaru czcionki w początkowym buforze zarysowania?
Radon Rosborough