Comment définir la taille de la police dans Emacs?


341

Je souhaite également enregistrer la taille de la police dans mon .emacsfichier.



3
Ceci est la réponse la plus simple qui a fonctionné pour moi stackoverflow.com/a/6050987/215094
Zeynel

3
Novice, utilisez .emacs.d/init.elplutôt ce qui est meilleur (plus propre et meilleur contrôle de version)
Lorem Ipsum Dolor

Réponses:


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

La valeur est en 1 / 10pt, donc 100 vous donnera 10pt, etc.


2
J'essaie de le faire, mais dans Emacs 23.1.1, la saisie automatique n'affichera que les options 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 Quelle saisie semi-automatique? Dans mon Emacs, set-face-attributeest en effet absent de M-x( execute-extended-command), mais il est présent dans M-:( eval-expression) et C-h f( describe-function). M-:est probablement ce que vous voulez, si vous ne voulez pas le mettre dans votre .emacsfichier.
Rory O'Kane

1
@ RoryO'Kane Pourquoi certaines commandes ne sont-elles pas disponibles via M-x? Noob question, j'en suis sûr, mais je ne sais pas comment emacs "fonctionne" à un bas niveau
DavidS

6
@DavidS Bonne question. J'ai rédigé une réponse à « Pourquoi certaines fonctions Emacs ne sont-elles pas disponibles via M-x? ». La recherche de la réponse s'est avérée être éducative.
Rory O'Kane

Cette solution ne fonctionne pas si vous avez personnalisé certains visages, par exemple pour avoir une police distincte, une inclinaison, etc. Ils resteraient avec l'ancienne taille, et vous devez les définir individuellement.
Hi-Angel

371

Depuis Emacswiki , GNU Emacs 23 a une combinaison de touches intégrée:

C-xC-+et C-xC--pour augmenter ou diminuer la taille du texte du tampon


29
ou `Cx C- = 'et' Cx C-- '
HongboZhu

59
C'est local à ce tampon particulier. Ainsi, lorsque vous basculez vers d'autres fichiers que vous modifiez, ils ne verront pas l'effet de ce changement. De plus, lorsque vous fermez et rouvrez le tampon (ou même redémarrez Emacs), ils seront à l'ancienne taille par défaut. C'est peut-être ce que vous voulez; Je dis juste ceci pour être complet.
ShreevatsaR

9
L'OP veut enregistrer la configuration dans .emacs, et ce n'est pas le cas.
xwl

travaille à spacemacs UI (dans MacOS), de mettre en init.el - stackoverflow.com/a/296316/432903
prayagupd

80

Appuyez sur Maj et sur le premier bouton de la souris. Vous pouvez modifier la taille de la police de la manière suivante: Ce site Web contient plus de détails.


1
@AndrewLarned Pour rendre la modification permanente, vous devez apporter la modification dans votre fichier .emacs. (Voir la réponse de Chris Conway pour un exemple de ce qu'il a dans son fichier .emacs.)
Ram Narasimhan

Existe-t-il un moyen de contrôler l'augmentation ou la diminution de la police lors de cette opération?
Mauricio A. Cinelli

42

M-x customize-face RET defaultvous permettra de définir la face du defaultvisage, sur laquelle toutes les autres faces seront basées . Là, vous pouvez définir la taille de la police.

Voici ce qui est dans mon .emacs. en fait, le thème de la couleur définira les bases, puis mon paramètre de visage personnalisé remplacera certaines choses. les faces personnalisées sont écrites par le mécanisme de personnalisation de face d'emacs:

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

2
De nombreux utilisateurs emacs avancés préfèrent ne pas utiliser le système de personnalisation, car il est sujet aux erreurs et mêle toutes les personnalisations. Il est préférable de décomposer votre personnalisation en fichiers .el individuels et de les charger depuis init.el, et d'ajouter vos personnalisations de mode sous forme de code elisp dans chacun. Voir la réponse de huaiyuan ci-dessus pour voir comment définir la police via elisp.
EdwardGarson

3
FWIW, le mainteneur emacs (vraisemblablement un utilisateur "avancé" d'emacs) utilise le système de personnalisation: github.com/jwiegley/dot-emacs/blob/…
Ben

38

Ceci est une autre solution simple. Fonctionne également en 24

(set-default-font "Monaco 14")

Raccourcis:

`C-+` increases font size
`C--` Decreases font size

15

J'ai les éléments suivants dans mon .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) 

Vous pouvez remplacer n'importe quelle police de votre choix "Monospace-11". L'ensemble des options disponibles dépend fortement du système. L'utilisation M-x set-default-fontet la lecture des tabulations vous donneront quelques idées. Sur mon système, avec Emacs 23 et anti-aliasing activé, peut choisir des polices système par nom, par exemple, Monospace, Sans Serif, etc.


10

Ouvrez emacs dans X11, allez dans le menu Options, sélectionnez "définir la police par défaut ...", changez la taille de la police. Sélectionnez "enregistrer les options" dans le même menu. Terminé.


Les modifications ne persistent pas si je redémarre emacs.
plonge le

9

zoom.cfg et global-zoom.cfg fournissent des liaisons de changement de taille de police (depuis EmacsWiki)

  • C-- ou C-mousewheel-up: augmente la taille de la police.
  • C- + ou C-molette vers le bas: diminue la taille de la police.
  • C-0 rétablit la taille de police par défaut.

8

Voici une option pour redimensionner les hauteurs de police de manière interactive, un point à la fois:

;; 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)))))

Ceci est préférable lorsque vous souhaitez redimensionner le texte dans tous les tampons. Je n'aime pas les solutions utilisant text-scale-increaseet text-scale-decreasecomme les numéros de ligne dans la gouttière peuvent être coupés par la suite.


C'est parfait! Merci beaucoup.
Fomentia

7

Firefox et d'autres programmes vous permettent d'augmenter et de diminuer la taille de la police avec C- + et C--. J'ai configuré mon .emacs pour avoir la même capacité en ajoutant ces lignes de code:

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

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

5

Aquamacs :

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

Dans le wiki Emacs, modifiez globalement la police par défaut , il est indiqué que vous pouvez utiliser l'une des options suivantes:

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

(set-frame-font FONT nil t)

FONTest quelque chose comme "Monaco-16", par exemple:

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

Il y avait une parenthèse fermante supplémentaire dans la première suggestion sur le wiki, ce qui a provoqué une erreur au démarrage. J'ai finalement remarqué la parenthèse fermante supplémentaire, et j'ai ensuite corrigé la suggestion sur le wiki. Ensuite, les deux suggestions ont fonctionné pour moi.


3

Tout dépend de ce que vous entendez par changer la taille de la police. Cette section EmacsWiki fournit les informations les meilleures et les plus complètes. Il distingue les différents cas (mise à l'échelle du texte, police de cadre, tampon / cadre, etc.): Modification de la taille de police .


1

Dans NTEmacs 23.1, le menu Options a une option "Définir la police par défaut ...".


1

Si vous êtes satisfait de la console emacs (emacs -nw), les implémentations modernes de vterm (comme gnome-terminal) ont généralement un meilleur support des polices. De plus, si vous vous y habituez, vous pouvez alors utiliser tmux, et ainsi travailler avec votre environnement complet sur des serveurs distants devient possible, même sans X.


1

Dans AquaMacs CMD +et CMD -ajustez la taille de la police pour le tampon actuel.


1

J'utilise le package hydra pour contrôler l'augmentation / la diminution de la police de manière contiguë en appuyant sur f2 + + + +/ f2 - - - -, ce qui signifie que vous appuyez f2une fois, puis en utilisant +/ -pour contrôler uniquement et restaurer la taille de police par défaut par f2 0. Parce que j'ai un clavier, je lie donc également le clavier au paramètre de police.

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

Et la fonctionnalité de contrôle de la souris de l'éditeur moderne prise en charge par les raccourcis clavier ci-dessous, appuyez sur la molette de contrôle + pour augmenter / diminuer la police.

(global-set-key (kbd "<C-wheel-up>") 'text-scale-increase)
(global-set-key (kbd "<C-wheel-down>") 'text-scale-decrease)

Les raccourcis clavier de la molette de la souris ne fonctionnent pas, j'ai la versionGNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.10.7)
Zelphir Kaltstahl

1
Ce serait (global-set-key (kbd "<C-mouse-4>") 'text-scale-increase) (global-set-key (kbd "<C-mouse-5>") 'text-scale-decrease) dans ma version d'emacs (25)
stefano

1

Voici un extrait qui vous permet de spécifier directement la taille de police globale à l'aide d'une fonction interactive:

(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))))))
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.