Wie stelle ich die Schriftgröße in Emacs ein?

Antworten:

402
(set-face-attribute 'default nil :height 100)

Der Wert ist in 1 / 10pt, also gibt 100 10pt usw.

Huaiyuan
quelle
2
Ich versuche dies zu tun, aber in Emacs 23.1.1 zeigt die automatische Vervollständigung nur die Optionen an set-face-background set-face-font set-face-inverse-video-p set-face-underline set-face-background-pixmap set-face-foreground set-face-stipple set-face-underline-p.
Tom Brito
8
@ TomBrito Welche Autovervollständigung? In meinem Emacs set-face-attributefehlt zwar M-x( execute-extended-command), aber es ist in M-:( eval-expression) und C-h f( describe-function) vorhanden. M-:ist wahrscheinlich das, was Sie wollen, wenn Sie dies nicht in Ihre .emacsDatei einfügen möchten .
Rory O'Kane
1
@ RoryO'Kane Warum sind einige Befehle nicht über verfügbar M-x? Noob Frage, ich bin sicher, aber ich bin nicht vertraut, wie Emacs auf niedrigem Niveau "funktioniert"
DavidS
6
@ DavidS Gute Frage. Ich schrieb eine Antwort unter „ Warum sind einige Emacs-Funktionen nicht über verfügbar M-x? ”. Die Recherche der Antwort erwies sich als lehrreich.
Rory O'Kane
Diese Lösung funktioniert jedoch nicht, wenn Sie einige Gesichter angepasst haben, z. B. um eine bestimmte Schriftart, Neigung usw. zu haben. Sie würden die alte Größe beibehalten, und Sie müssen sie einzeln festlegen.
Hi-Angel
371

GNU Emacs 23 aus Emacswiki verfügt über eine integrierte Tastenkombination:

C-xC-+und C-xC--um die Puffertextgröße zu erhöhen oder zu verringern

Brandon Leiran
quelle
29
oder "Cx C- =" und "Cx C--"
HongboZhu
59
Dies ist lokal für diesen bestimmten Puffer. Wenn Sie also zu anderen Dateien wechseln, die Sie bearbeiten, werden die Auswirkungen dieser Änderung nicht angezeigt. Auch wenn Sie den Puffer schließen und erneut öffnen (oder Emacs sogar neu starten), haben sie die alte Standardgröße. Dies kann sein, was Sie wollen; Ich sage dies nur der Vollständigkeit halber.
ShreevatsaR
9
Das OP möchte die Konfiguration in .emacs speichern, dies ist jedoch nicht der Fall.
XWL
funktioniert in der Spacemacs-Benutzeroberfläche (in Macos), um in init.el - stackoverflow.com/a/296316/432903
prayagupd
80

Drücken Sie die Umschalttaste und die erste Maustaste. Sie können die Schriftgröße folgendermaßen ändern: Diese Website enthält weitere Details.

George Stocker
quelle
1
@AndrewLarned Um die Änderung dauerhaft zu machen, müssen Sie die Änderung in Ihrer .emacs-Datei vornehmen. (Siehe Chris Conways Antwort für ein Beispiel dessen, was er in seiner .emacs-Datei hat.)
Ram Narasimhan
Gibt es eine Möglichkeit zu steuern, um wie viel die Schrift erhöht oder verringert wird, wenn Sie dies tun?
Mauricio A. Cinelli
42

M-x customize-face RET defaultMit dieser Option können Sie die Gesichtsfläche festlegen default, auf der alle anderen Flächen basieren. Dort können Sie die Schriftgröße einstellen.

Hier ist was in meinen .emacs ist. Tatsächlich legt das Farbthema die Grundlagen fest, und meine benutzerdefinierte Gesichtseinstellung überschreibt einige Dinge. Die benutzerdefinierten Gesichter werden vom Emacs-Mechanismus zum Anpassen von Gesichtern geschrieben:

;; my colour theme is whateveryouwant :)
(require 'color-theme)
(color-theme-initialize)
(color-theme-whateveryouwant)

(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 98 :width normal :foundry "unknown" :family "DejaVu Sans Mono"))))
 '(font-lock-comment-face ((t (:foreground "darkorange4"))))
 '(font-lock-function-name-face ((t (:foreground "navy"))))
 '(font-lock-keyword-face ((t (:foreground "red4"))))
 '(font-lock-type-face ((t (:foreground "black"))))
 '(linum ((t (:inherit shadow :background "gray95"))))
 '(mode-line ((t (nil nil nil nil :background "grey90" (:line-width -1 :color nil :style released-button) "black" :box nil :width condensed :foundry "unknown" :family "DejaVu Sans Mono")))))
Johannes Schaub - litb
quelle
2
Viele fortgeschrittene Emacs-Benutzer bevorzugen es, das Anpassungssystem nicht zu verwenden, da es fehleranfällig ist und alle Anpassungen miteinander vermischt. Es ist besser, Ihre Anpassung in einzelne .el-Dateien aufzuteilen und diese aus init.el zu laden und Ihre Modusanpassungen als Elisp-Code in jede Datei einzufügen. In der obigen Antwort von Huaiyuan erfahren Sie, wie Sie die Schriftart über elisp einstellen.
EdwardGarson
3
FWIW, der Emacs-Betreuer (vermutlich ein "fortgeschrittener" Benutzer von Emacs) verwendet das Anpassungssystem: github.com/jwiegley/dot-emacs/blob/…
Ben
38

Dies ist eine weitere einfache Lösung. Funktioniert auch in 24

(set-default-font "Monaco 14")

Abkürzungen:

`C-+` increases font size
`C--` Decreases font size
ravi404
quelle
15

Ich habe folgendes in meinem .emacs:

(defun fontify-frame (frame)
  (set-frame-parameter frame 'font "Monospace-11"))

;; Fontify current frame
(fontify-frame nil)
;; Fontify any future frames
(push 'fontify-frame after-make-frame-functions) 

Sie können jede Schriftart Ihrer Wahl ersetzen "Monospace-11". Die verfügbaren Optionen sind stark systemabhängig. Wenn Sie M-x set-default-fontdie Tab-Vervollständigungen verwenden und betrachten, erhalten Sie einige Ideen. Auf meinem System mit Emacs 23 und Anti-Aliasing aktiviert ist , können Systemschriften mit Namen, zB wählen Monospace, Sans Serifusw.

Chris Conway
quelle
10

Öffnen Sie Emacs in X11, gehen Sie zum Menü Optionen, wählen Sie "Standardschriftart festlegen ..." und ändern Sie die Schriftgröße. Wählen Sie im selben Menü "Optionen speichern". Erledigt.

TheGreatPower
quelle
Die Änderungen bleiben nicht bestehen, wenn ich emacs neu starte.
Dips
9

zoom.cfg und global-zoom.cfg bieten Bindungen zur Änderung der Schriftgröße (aus EmacsWiki).

  • C- oder C-Mausrad: Erhöht die Schriftgröße.
  • C- + oder C-Mausrad nach unten: Verringert die Schriftgröße.
  • C-0 setzt die Schriftgröße auf die Standardeinstellung zurück.
David Villa
quelle
8

Hier ist eine Option zum interaktiven Ändern der Schrifthöhen, Punkt für Punkt:

;; font sizes
(global-set-key (kbd "s-=")
                (lambda ()
                  (interactive)
                  (let ((old-face-attribute (face-attribute 'default :height)))
                    (set-face-attribute 'default nil :height (+ old-face-attribute 10)))))

(global-set-key (kbd "s--")
                (lambda ()
                  (interactive)
                  (let ((old-face-attribute (face-attribute 'default :height)))
                    (set-face-attribute 'default nil :height (- old-face-attribute 10)))))

Dies ist vorzuziehen, wenn Sie die Größe von Text in allen Puffern ändern möchten . Ich mag keine Lösungen mit text-scale-increaseund text-scale-decreaseda Zeilennummern in der Rinne danach abgeschnitten werden können.

Kevin Ushey
quelle
Dies ist perfekt! Ich danke dir sehr.
Fomentia
7

Mit Firefox und anderen Programmen können Sie die Schriftgröße mit C- + und C-- erhöhen und verringern. Ich habe meine .emacs so eingerichtet, dass ich die gleiche Fähigkeit habe, indem ich folgende Codezeilen hinzufüge:

(global-set-key [C-kp-add] 'text-scale-increase)

(global-set-key [C-kp-subtract] 'text-scale-decrease)
bzimmerly
quelle
5

Aquamacs :

(set-face-attribute 'default nil :font "Monaco-16" )

Im Emacs-Wiki können Sie die Standardschriftart global ändern. Sie können eine der folgenden Optionen verwenden:

(set-face-attribute 'default nil :font FONT )

(set-frame-font FONT nil t)

Wo FONTist so etwas wie "Monaco-16"zB:

(set-face-attribute 'default nil :font "Monaco-16" )

Der erste Vorschlag im Wiki enthielt eine zusätzliche schließende Klammer, die beim Start einen Fehler verursachte. Endlich bemerkte ich die zusätzliche schließende Klammer und korrigierte anschließend den Vorschlag im Wiki. Dann haben beide Vorschläge für mich funktioniert.

7stud
quelle
3

Es hängt alles davon ab, was Sie unter Ändern der Schriftgröße verstehen. Dieser EmacsWiki-Abschnitt bietet die besten und vollständigsten Informationen. Es werden die verschiedenen Fälle unterschieden (Textskalierung, Rahmenschrift, Puffer / Rahmen usw.): Ändern der Schriftgröße .

Drew
quelle
1

In NTEmacs 23.1 verfügt das Menü "Optionen" über die Option "Standardschriftart festlegen ...".

Phil
quelle
1

Ich bin mit Konsolen-Emacs (emacs -nw) zufrieden. Moderne vterm-Implementierungen (wie das Gnome-Terminal) bieten tendenziell eine bessere Unterstützung für Schriftarten. Wenn Sie sich daran gewöhnt haben, können Sie tmux verwenden, sodass die Arbeit mit Ihrer gesamten Umgebung auf Remote-Servern auch ohne X möglich wird.

blais
quelle
1

In Aquamacs CMD +und CMD -passen Sie die Schriftgröße für den aktuellen Puffer.

Matthew H.
quelle
1

Ich verwende das Hydra- Paket, um das Erhöhen / Verringern der Schrift durch Drücken von f2 + + + +/ fortlaufend zu steuern. Dies f2 - - - -bedeutet, dass Sie f2einmal drücken und dann +/ verwenden -, um nur zu steuern und die Standardschriftgröße durch wiederherzustellen f2 0. Da ich eine Tastatur habe, binde ich die Tastatur auch an die Schriftarteinstellung.

(defhydra hydra-zoom (global-map "<f2>")
  "zoom"
  ("<kp-add>" text-scale-increase "in")
  ("+" text-scale-increase "in")
  ("-" text-scale-decrease "out")
  ("<kp-subtract>" text-scale-decrease "out")
  ("0" (text-scale-set 0) "reset")
  ("<kp-0>" (text-scale-set 0) "reset"))

Und moderne Editor-Maussteuerungsfunktionen, die durch die folgenden Tastenkombinationen unterstützt werden: Drücken Sie die Steuerungstaste + Mausrad, um die Schriftart zu erhöhen / zu verringern.

(global-set-key (kbd "<C-wheel-up>") 'text-scale-increase)
(global-set-key (kbd "<C-wheel-down>") 'text-scale-decrease)
Leu_Grady
quelle
Die Tastenkombinationen für das Mausrad funktionieren nicht, ich habe VersionGNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.10.7)
Zelphir Kaltstahl
1
Das wäre (global-set-key (kbd "<C-mouse-4>") 'text-scale-increase) (global-set-key (kbd "<C-mouse-5>") 'text-scale-decrease) In meiner Version von Emacs (25)
Stefano
1

Hier ist ein Ausschnitt, mit dem Sie die globale Schriftgröße mithilfe einer interaktiven Funktion direkt angeben können:

(defun set-font-size ()
    "Set the font size."
  (interactive)
  (set-face-attribute
   'default nil :height
   (string-to-number
    (read-string "Font size: " (number-to-string (face-attribute 'default :height nil))))))
Ibrahim
quelle