Jak ustawić domyślną czcionkę w Emacsie?

31

Nie mogę ustawić Inconsolata jako domyślnej czcionki w systemie Emacs 24.4 Linux.

  • Zmieniłem czcionkę w menu -> Zapisz opcje. Czcionka się zmieniła, ale po ponownym uruchomieniu czcionka jest taka sama, jak była domyślnie.
  • Dodano to do ~/.Xresources: Emacs.font: Inconsolata LGC

    Następnie w init.el: (set-default-font "Inconsolata LGC"). Ta sama historia

Co robię źle?

Maglight
źródło
Jeśli czcionka działa, gdy ją ustawisz, ale zniknie ponownie przy następnym ładowaniu emacsa, może to być problem z tym, gdzie zapisywane są (lub nie są) twoje ustawienia niestandardowe.
nispio
Używam emacsclient z emacsem uruchomionym jako demon. Zmieniam ustawienia w init.el i po zapisaniu zrestartuję demona.
Maglight
2
Czy jest to specyficzne dla Emacsa 24.4? IOW, czy masz inne zachowanie w innym kompilacji / wydaniu? Jeśli nie, rozważ usunięcie odniesienia do 24.4.
Drew
Ponieważ uruchamiasz emacsa jako demona, sprawdź wszystkie dane wyjściowe konsoli z twojego wywołania emacs --daemoni upewnij się, że nie ma żadnych komunikatów o błędach.
nispio
Mam to w mojej init.el: (set-frame-font "Ubuntu Mono 11")
thdox

Odpowiedzi:

29

Mam następujące pliki w .emacs używające Emacsa dla OSX:

(custom-set-faces
 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(default ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 130 :width normal :family "Inconsolata")))))

Ustawienie czcionki

Najłatwiej jest ustawić czcionkę za pomocą menu, jeśli używasz Emacsa w środowisku graficznym. Użyj „Opcje -> Ustaw domyślną czcionkę ...” z menu.

Nie skończyłeś, bo zmieniłeś tylko czcionkę tymczasowo. Najprostszą znaną mi metodą jest użycie trybu dostosowywania.

M-x customize-face RET default RET

Teraz zmień opcje, które chcesz zmienić, jeśli takie istnieją. Jeśli zmieniłeś już czcionkę za pomocą menu, powinieneś zobaczyć swoje zmiany tutaj.

Zapisywanie do pliku init

Zapisz na przyszłe sesje :

  • Kliknij przycisk Stan i wybierz opcję Zapisz na przyszłe sesje

lub

  • C-x C-s podczas gdy w buforze dostosowywania, który Wola powinien zrobić to samo, ale nie zawsze działa, np. po(set-default-font "Inconsolata")

Jeśli wszystko inne zawiedzie...

Możesz mieć szczęście ze stroną Ustaw czcionki .

Harvey
źródło
16

Używam tego w moim init.el:

;; Set default font
(set-face-attribute 'default nil
                    :family "Source Code Pro"
                    :height 110
                    :weight 'normal
                    :width 'normal)

Możesz spróbować tego samego za pomocą Inconsolata zamiast Source Code Pro.

Boccaperta-IT
źródło
Dodano go w init.el. Po ponownym uruchomieniu nadal czcionka jest domyślnie.
Maglight
Czy wpisałeś „InconsolataLGC” bez spacji między „Inconsolata” a „LGC”?
Boccaperta-IT,
Tak, próbowałem również ustawić go na Terminus.
Maglight
1
Spróbuj uruchomić fc-cache -fvz terminala. Być może pamięć podręczna czcionek nie jest aktualna. Próbowałem ustawić Anonymous Pro i działa na moim.
Boccaperta-IT,
Dzięki, ale to nie pomogło. Mogę ustawić tę czcionkę, ale Emacs nie zapisuje jej w przyszłych sesjach.
Maglight
12

Jeśli zmieniłeś coś w pliku .Xresources , musisz go ponownie przeczytać , aby zobaczyć zmiany w bieżącej sesji.

  • Aby zachować stare ustawienia zasobów i zastosować nowe:

    xrdb -merge ~/.Xresources
    
  • Aby wyrzucić stare zasoby i zastosować tylko ustawienia z .Xresources :

    xrdb ~/.Xresources
    

Korekty .Xresources pliku są lepsze, ponieważ są one stosowane przed oknie Mapowanie X11 Emacs. Dostosowania w plikach inicjujących (.emacs, .emacs.d /) są ponownie stosowane w już utworzonym oknie. Możesz na przykład uniknąć „migotania” pasków narzędzi podczas uruchamiania po dodaniu

! UI elements
Emacs.menuBar: 0
Emacs.toolBar: 0
Emacs.verticalScrollBars: off
! Font settings
Emacs.FontBackend: xft,x
Emacs.font: Inconsolata LGC:size=16

do pliku .Xresources .

Możesz sprawdzić, co jeszcze jest dostępne na https://www.gnu.org/software/emacs/manual/html_node/emacs/X-Resources.html

kmicu
źródło
5

To zawsze działa, gdy chcę wypróbować inne czcionki (umieść je w pliku init.el lub .emacs):

(push '(font . "Inconsolata") default-frame-alist)

lub

(add-to-list 'default-frame-alist '(font . "Inconsolata"))

W takim przypadku oba wyrażenia są równoważne.

W skrócie, formularze te ustawiają czcionkę dla bieżącej i wszystkich przyszłych ramek Emacsa. Ponieważ są one zapisane w pliku konfiguracyjnym, instalacja nie zostanie utracona przy ponownym uruchomieniu.

cofnie się
źródło