Como definir o tamanho da fonte no Emacs?


Respostas:


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

O valor está em 1 / 10pt, portanto, 100 fornecerá 10pt etc.


2
Estou tentando fazer isso, mas no Emacs 23.1.1 o preenchimento automático mostrará apenas as opções 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 Qual preenchimento automático? No meu Emacs, set-face-attributeestá realmente ausente de M-x( execute-extended-command), mas está presente em M-:( eval-expression) e C-h f( describe-function). M-:é provavelmente o que você deseja, se não quiser colocar isso no seu .emacsarquivo.
— Rory O'Kane

11
@ RoryO'Kane Por que alguns comandos não estão disponíveis via M-x? Noob pergunta, eu tenho certeza, mas eu não estou familiarizado com a forma como emacs "obras" em um de baixo nível
— Davids

6
@ David David Boa pergunta. Eu escrevi uma resposta em “ Por que algumas funções do Emacs não estão disponíveis via M-x? ”. Pesquisando a resposta acabou por ser educativo.
— Rory O'Kane 22/03

Essa solução não funciona quando você personaliza algumas faces, por exemplo, para ter uma fonte, inclinação, etc. distintas. Elas ficam com o tamanho antigo e você deve defini-las individualmente.
— Angel.

371

No Emacswiki , o GNU Emacs 23 possui uma combinação de teclas embutida:

C-xC-+e C-xC--para aumentar ou diminuir o tamanho do texto do buffer


29
ou `Cx C- = 'e' Cx C-- '
— HongboZhu 19/03/12

59
Isso é local para esse buffer específico. Portanto, quando você alterna para outros arquivos que está editando, eles não verão o efeito dessa alteração. Além disso, quando você fechar e reabrir o buffer (ou até reiniciar o Emacs), eles terão o tamanho padrão antigo. Pode ser o que você quer; Só estou afirmando isso por completo.
— ShreevatsaR

9
O OP quer salvar a configuração no .emacs, e isso não acontece.
— Xwl 5/03

trabalha em spacemacs UI (no MacOS), para definir em init.el - stackoverflow.com/a/296316/432903
— prayagupd

80

Pressione Shift e o primeiro botão do mouse. Você pode alterar o tamanho da fonte da seguinte maneira: Este site tem mais detalhes.


11
@AndrewLarned Para tornar a alteração permanente, você deve fazer a alteração no seu arquivo .emacs. (Resposta See de Chris Conway para um exemplo do que ele tem em seu arquivo .emacs.)
— Ram Narasimhan

Existe alguma maneira de controlar quanto aumenta ou diminui a fonte ao fazer isso?
— Mauricio A. Cinelli

42

M-x customize-face RET defaultpermitirá que você defina a defaultface, na qual todas as outras faces se baseiam. Lá você pode definir o tamanho da fonte.

Aqui está o que está no meu .emacs. na verdade, o tema de cores definirá o básico, e minha configuração de rosto personalizada substituirá algumas coisas. o custom-set-faces é escrito pelo mecanismo de custom-face do 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
Muitos usuários avançados do emacs preferem não usar o sistema de personalização, pois é propenso a erros e mistura todas as personalizações. É melhor dividir sua personalização em arquivos .el individuais e carregá-los no init.el e adicionar personalizações de modo como código elisp em cada um. Veja a resposta de huaiyuan acima para ver como definir a fonte via elisp.
— EdwardGarson

3
FWIW, o mantenedor do emacs (presumivelmente um usuário "avançado" do emacs) usa o sistema de personalização: github.com/jwiegley/dot-emacs/blob/…
— Ben

38

Essa é outra solução simples. Funciona em 24 também

(set-default-font "Monaco 14")

Atalhos:

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

15

Eu tenho o seguinte no meu .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) 

Você pode substituir qualquer fonte de sua escolha "Monospace-11". O conjunto de opções disponíveis é altamente dependente do sistema. Usar M-x set-default-fonte observar as conclusões da guia fornecerão algumas idéias. No meu sistema, com o Emacs 23 e anti-aliasing ativado, pode escolher fontes do sistema por nome, por exemplo, Monospace, Sans Serif, etc.


10

Abra o emacs no X11, vá para o menu Opções, selecione "definir fonte padrão ...", altere o tamanho da fonte. Selecione "salvar opções" no mesmo menu. Feito.


As alterações não persistem se eu reiniciar o emacs.
— mergulha

9

zoom.cfg e global-zoom.cfg fornecem ligações de alteração de tamanho de fonte (no EmacsWiki)

  • C-- ou C-mousewheel-up: aumenta o tamanho da fonte.
  • C- + ou C-mousewheel-down: diminui o tamanho da fonte.
  • C-0 reverte o tamanho da fonte para o padrão.

8

Aqui está uma opção para redimensionar as alturas das fontes interativamente, um ponto de cada vez:

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

Isso é preferível quando você deseja redimensionar o texto em todos os buffers. Não gosto de soluções usando text-scale-increasee, text-scale-decreasecomo os números de linha na sarjeta podem ser cortados depois.


Isto é perfeito! Muito obrigado.
— Fomentia 28/03

7

O Firefox e outros programas permitem aumentar e diminuir o tamanho da fonte com C- + e C--. Eu configurei meu .emacs para ter a mesma capacidade adicionando estas linhas de código:

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

No Wiki do Emacs, altere globalmente a fonte padrão , ele diz que você pode usar um destes:

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

(set-frame-font FONT nil t)

Onde FONTé algo como "Monaco-16", por exemplo:

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

Havia um parêntese de fechamento extra na primeira sugestão no wiki, o que causou um erro na inicialização. Finalmente notei o parêntese de fechamento extra e, posteriormente, corrigi a sugestão no wiki. Então as duas sugestões funcionaram para mim.


3

Tudo depende do que você quer dizer com alterar o tamanho da fonte. Esta seção do EmacsWiki fornece as melhores e mais completas informações. Distingue os vários casos (escala de texto, fonte do quadro, buffer / quadro, etc.): Alteração do tamanho da fonte .


1

No NTEmacs 23.1, o menu Opções possui a opção "Definir fonte padrão ...".


1

Se você está feliz com o console emacs (emacs -nw), as implementações modernas do vterm (como o gnome-terminal) tendem a ter melhor suporte a fontes. Além disso, se você se acostumar com isso, poderá usar o tmux e, assim, trabalhar com seu ambiente completo em servidores remotos se tornará possível, mesmo sem o X.


1

No AquaMacs CMD +e CMD -ajuste o tamanho da fonte para o buffer atual.


1

Eu uso o pacote hydra para controlar o aumento / diminuição da fonte pressionando f2 + + + +/ f2 - - - -, o que significa que pressione f2uma vez e depois use +/ -para controlar apenas e restaure o tamanho da fonte padrão f2 0. Como tenho teclado, também vinculo o teclado à configuração da fonte.

(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 a funcionalidade moderna de controle do mouse do editor suportada pelas combinações de teclas abaixo, pressione control + roda do mouse para aumentar / diminuir a fonte.

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

Os atalhos de teclado para a roda do mouse não funcionam, eu tenho a versãoGNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.10.7)
— Zelphir Kaltstahl

11
Esses seriam (global-set-key (kbd "<C-mouse-4>") 'text-scale-increase) (global-set-key (kbd "<C-mouse-5>") 'text-scale-decrease) Na minha versão do emacs (25)
— stefano

1

Aqui está um trecho que permite especificar diretamente o tamanho da fonte global usando uma função interativa:

(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))))))
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.