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.