Come impostare la dimensione del carattere in Emacs?


Risposte:


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

Il valore è in 1 / 10pt, quindi 100 ti darà 10pt, ecc.


2
Sto provando a farlo, ma in Emacs 23.1.1 il completamento automatico mostrerà solo le opzioni 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 Quale completamento automatico? Nel mio Emacs, set-face-attributemanca davvero da M-x( execute-extended-command), ma è presente in M-:( eval-expression) e C-h f( describe-function). M-:è probabilmente quello che vuoi, se non vuoi metterlo nel tuo .emacsfile.
Rory O'Kane,

1
@ RoryO'Kane Perché alcuni comandi non sono disponibili tramite M-x? Domanda Noob, ne sono certo, ma non ho familiarità con il modo in cui "Emacs" funziona a basso livello
DavidS

6
@DavidS Buona domanda. Ho scritto una risposta in “ Perché alcune funzioni di Emacs non sono disponibili tramite M-x? ”. La ricerca della risposta si è rivelata educativa.
Rory O'Kane,

Questa soluzione non funziona però quando hai personalizzato alcune facce, ad esempio per avere un carattere distinto, inclinato, ecc. Sarebbero lasciati con la vecchia dimensione e devi impostarli singolarmente.
Ciao Angelo,

371

Da Emacswiki , GNU Emacs 23 ha una combinazione di tasti integrata:

C-xC-+e C-xC--per aumentare o ridurre la dimensione del testo del buffer


29
o `Cx C- = 'e' Cx C-- '
HongboZhu

59
Questo è locale per quel particolare buffer. Quindi, quando passi ad altri file che stai modificando, non vedranno l'effetto di questa modifica. Inoltre, quando chiudi e riapri il buffer (o addirittura riavvii Emacs), avranno le dimensioni predefinite precedenti. Questo può essere quello che vuoi; Sto solo affermando questo per completezza.
ShreevatsaR,

9
L'OP vuole salvare la configurazione in .emacs, e questo no.
xwl

lavora a spacemacs UI (in MacOS), per impostare in init.el - stackoverflow.com/a/296316/432903
prayagupd

80

Premi Maiusc e il primo pulsante del mouse. È possibile modificare la dimensione del carattere nel modo seguente: Questo sito Web ha maggiori dettagli.


1
@AndrewLarned Per rendere permanente la modifica, devi apportare la modifica al tuo file .emacs. (Vedi la risposta di Chris Conway per un esempio di ciò che ha nel suo file .emacs.)
Ram Narasimhan

C'è un modo per controllare quanto aumenta o diminuisce il carattere mentre lo fa?
Mauricio A. Cinelli,

42

M-x customize-face RET default ti permetterà di impostare il viso default su cui si basano tutte le altre facce. Lì puoi impostare la dimensione del carattere.

Ecco cosa c'è nel mio .emacs. in realtà, il tema colore imposterà le basi, quindi la mia impostazione del volto personalizzata prevarrà su alcune cose. custom-set-faces è scritto dal meccanismo custom-face di 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
Molti utenti avanzati di emacs preferiscono non utilizzare il sistema di personalizzazione, poiché è soggetto a errori e mescola tutte le personalizzazioni. È meglio suddividere la personalizzazione in singoli file .el e caricarli da init.el e aggiungere le personalizzazioni della modalità come codice elisp all'interno di ciascuno. Vedi la risposta di huaiyuan sopra per vedere come impostare il carattere tramite elisp.
EdwardGarson,

3
FWIW, il manutentore di emacs (presumibilmente un utente "avanzato" di emacs) utilizza il sistema di personalizzazione: github.com/jwiegley/dot-emacs/blob/…
Ben

38

Questa è un'altra soluzione semplice. Funziona anche in 24

(set-default-font "Monaco 14")

Scorciatoie:

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

15

Ho il seguente nel mio .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) 

È possibile sostituire qualsiasi carattere di propria scelta per "Monospace-11". L'insieme delle opzioni disponibili dipende fortemente dal sistema. L'uso M-x set-default-fonte il completamento dei tab completamenti ti daranno alcune idee. Sul mio sistema, con Emacs 23 e anti-aliasing abilitato, può scegliere i font di sistema per nome, ad esempio, Monospace, Sans Serif, etc.


10

Apri emacs in X11, vai al menu Opzioni, seleziona "imposta carattere predefinito ...", modifica la dimensione del carattere. Seleziona "salva opzioni" nello stesso menu. Fatto.


Le modifiche non persistono se riavvio emacs.
cade il

9

zoom.cfg e global-zoom.cfg forniscono collegamenti di modifica della dimensione del carattere (da EmacsWiki)

  • C-- o C-rotellina del mouse verso l'alto: aumenta la dimensione del carattere.
  • C- + o C-mouse-down-down: diminuisce la dimensione del carattere.
  • C-0 ripristina la dimensione del carattere predefinita.

8

Ecco un'opzione per ridimensionare le altezze del carattere in modo interattivo, un punto alla volta:

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

Questo è preferibile quando si desidera ridimensionare il testo in tutti i buffer. Non mi piacciono le soluzioni che usano text-scale-increasee text-scale-decreasecome i numeri di riga nella grondaia possono essere tagliati dopo.


Questo è perfetto! Grazie mille.
Fomentia,

7

Firefox e altri programmi ti consentono di aumentare e diminuire la dimensione del carattere con C- + e C--. Ho impostato il mio .emacs in modo da avere la stessa capacità aggiungendo queste righe di codice:

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

Dal Wiki Emacs cambia globalmente il carattere predefinito , dice che puoi usare uno di questi:

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

(set-frame-font FONT nil t)

Dov'è FONTqualcosa di simile "Monaco-16", ad esempio:

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

C'era una parentesi di chiusura extra nel primo suggerimento sul wiki, che ha causato un errore all'avvio. Alla fine ho notato la parentesi extra di chiusura, e successivamente ho corretto il suggerimento sul wiki. Quindi entrambi i suggerimenti hanno funzionato per me.


3

Tutto dipende da cosa intendi cambiando la dimensione del carattere. Questa sezione di EmacsWiki fornisce le informazioni migliori e più complete. Distingue i vari casi (ridimensionamento del testo, carattere della cornice, buffer / cornice, ecc.): Modifica della dimensione del carattere .


1

In NTEmacs 23.1, il menu Opzioni ha un'opzione "Imposta carattere predefinito ...".


1

Sono contento di console emacs (emacs -nw), le moderne implementazioni di vterm (come gnome-terminal) tendono ad avere un miglior supporto per i font. Inoltre, se ti ci abitui, puoi usare tmux, e quindi diventa possibile lavorare con il tuo ambiente completo su server remoti, anche senza X.


1

In AquaMacs CMD +e CMD -regola le dimensioni del carattere per il buffer corrente.


1

Uso il pacchetto hydra per controllare l'aumento / la riduzione dei caratteri in modo contiguo premendo f2 + + + +/ f2 - - - -, il che significa che premere f2una volta, quindi utilizzare +/ -per controllare solo e ripristinare la dimensione del carattere predefinita di f2 0. Perché ho la tastiera, quindi associo anche la tastiera all'impostazione del carattere.

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

E la moderna funzionalità di controllo del mouse dell'editor supportata dai tasti sottostanti, premi control + rotellina del mouse per aumentare / ridurre il carattere.

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

Le combinazioni di tasti per la rotellina del mouse non funzionano, ne ho una versioneGNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.10.7)
Zelphir Kaltstahl

1
Quelli sarebbero (global-set-key (kbd "<C-mouse-4>") 'text-scale-increase) (global-set-key (kbd "<C-mouse-5>") 'text-scale-decrease) nella mia versione di emacs (25)
stefano il

1

Ecco uno snippet che ti consente di specificare direttamente la dimensione del carattere globale utilizzando una funzione interattiva:

(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))))))
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.