Wie kann ich in Emacs eine Standardschrift festlegen?

31

Ich kann Inconsolata in Emacs 24.4 Linux nicht als Standardschrift festlegen.

  • Ich habe die Schriftart im Menü -> Optionen speichern geändert. Die Schriftart wurde geändert, aber nach einem Neustart entspricht die Schriftart der Standardeinstellung.
  • Dies hinzugefügt zu ~/.Xresources: Emacs.font: Inconsolata LGC

    Dann in init.el: (set-default-font "Inconsolata LGC"). Die gleiche Geschichte.

Was mache ich falsch?

Maglight
quelle
Wenn die Schriftart beim Festlegen funktioniert, beim nächsten Laden von Emacs jedoch wieder ausgeblendet wird, liegt möglicherweise ein Problem darin, wo Ihre benutzerdefinierten Einstellungen gespeichert werden (oder nicht).
Nispio
Ich benutze Emacsclient mit Emacs als Daemon gestartet. Ich ändere die Einstellungen in init.el und starte den Daemon nach dem Speichern neu.
Maglight
2
Gilt das speziell für Emacs 24.4? IOW, verhält es sich in einem anderen Build / Release anders? Wenn nicht, entfernen Sie den Verweis auf 24.4.
Drew
Da Sie emacs als Daemon starten, überprüfen Sie die gesamte Konsolenausgabe Ihres Aufrufs an emacs --daemonund stellen Sie sicher, dass keine Fehlermeldungen vorliegen.
Nispio
Ich habe dies in meinem init.el: (set-frame-font "Ubuntu Mono 11")
thdox

Antworten:

29

In meinen .emacs, die Emacs für OSX verwenden, ist Folgendes enthalten:

(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")))))

Schrift einstellen

Es ist am einfachsten, die Schriftart mithilfe der Menüs festzulegen, wenn Sie Emacs in einer grafischen Umgebung ausführen. Verwenden Sie "Optionen -> Standardschrift festlegen ..." aus den Menüs.

Jetzt sind Sie noch nicht fertig, da Sie die Schriftart nur vorübergehend geändert haben. Die einfachste mir bekannte Methode ist die Verwendung des Anpassungsmodus.

M-x customize-face RET default RET

Ändern Sie nun gegebenenfalls die zu ändernden Optionen. Wenn Sie die Schriftart bereits über die Menüs geändert haben, sollten Sie Ihre Änderungen hier sehen.

Speichern in Ihre Init-Datei

Speichern Sie für zukünftige Sitzungen, indem Sie entweder:

  • Klicken Sie auf den Staat Schaltfläche und wählen Speichern für zukünftige Sitzungen

oder

  • C-x C-s während im Anpassungspuffer die werden sollte dasselbe tun , funktioniert aber nicht immer, zB danach(set-default-font "Inconsolata")

Wenn alle Stricke reißen...

Vielleicht haben Sie Glück mit der Seite Schriften festlegen.

Harvey
quelle
16

Ich benutze dies in meinem init.el:

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

Sie können es auch mit Inconsolata anstelle von Source Code Pro versuchen.

Boccaperta-IT
quelle
Hinzugefügt in init.el. Nach dem Neustart noch standardmäßig Schriftart.
Maglight
Haben Sie "InconsolataLGC" ohne das Leerzeichen zwischen "Inconsolata" und "LGC" eingegeben?
Boccaperta-IT
Ja, ich habe auch versucht, es auf Terminus zu setzen.
Maglight
1
Versuchen Sie, fc-cache -fvvon Ihrem Terminal aus zu starten. Möglicherweise ist der Font-Cache nicht auf dem neuesten Stand. Ich habe versucht Anonymous Pro einzustellen und es funktioniert auf meinem.
Boccaperta-IT
Danke, aber das hat nicht geholfen. Ich kann diese Schriftart festlegen, aber Emacs speichert sie in zukünftigen Sitzungen nicht.
Maglight
12

Wenn Sie etwas in der .Xresources- Datei geändert haben, müssen Sie diese erneut lesen , um alle Änderungen in der aktuellen Sitzung zu sehen.

  • So behalten Sie Ihre alten Ressourceneinstellungen bei und wenden neue an:

    xrdb -merge ~/.Xresources
    
  • So werfen Sie Ihre alten Ressourcen weg und wenden nur Einstellungen von .Xresources an :

    xrdb ~/.Xresources
    

Anpassungen in der .Xresources- Datei sind besser, da sie vor dem Zuordnen des X11-Fensters von emacs angewendet werden. Anpassungen in Init-Dateien (.emacs, .emacs.d /) werden erneut auf bereits erstellte Fenster angewendet. Sie können beispielsweise verhindern, dass die Symbolleisten beim Start flackern, wenn Sie sie hinzufügen

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

in Ihre .Xresources- Datei.

Sie können unter https://www.gnu.org/software/emacs/manual/html_node/emacs/X-Resources.html nachsehen, was noch verfügbar ist

kmicu
quelle
5

Dies funktioniert immer dann, wenn ich andere Schriftarten ausprobieren möchte (in die Datei init.el oder .emacs einfügen):

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

oder

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

In diesem Fall sind beide Ausdrücke äquivalent.

Kurz gesagt, diese Formulare legen die Schriftart für den aktuellen und alle zukünftigen Emacs-Frames fest. Da diese in Ihrer Konfigurationsdatei gespeichert sind, geht das Setup beim Neustart nicht verloren.

undostres
quelle