Jak ustawić rozmiar czcionki w Emacsie?

Odpowiedzi:

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

Wartość jest w 1/10pt, więc 100 da ci 10pt itp.

huaiyuan
źródło
2
Próbuję to zrobić, ale w Emacs 23.1.1 automatyczne uzupełnianie pokaże tylko opcje 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 Które autouzupełnianie? W moim Emacsie set-face-attributerzeczywiście brakuje go w M-x( execute-extended-command), ale występuje w M-:( eval-expression) i C-h f( describe-function). M-:jest prawdopodobnie tym, czego chcesz, jeśli nie chcesz tego umieszczać w swoim .emacspliku.
Rory O'Kane,
1
@ RoryO'Kane Dlaczego niektóre polecenia nie są dostępne za pośrednictwem M-x? Pytanie Noob, jestem pewien, ale nie jestem zaznajomiony z tym, jak emacs „działa” na niskim poziomie
DavidS
6
@DavidS Dobre pytanie. Odpowiedziałem na „ Dlaczego niektóre funkcje Emacsa nie są dostępne przez M-x? ”. Badanie odpowiedzi okazało się edukacyjne.
Rory O'Kane
To rozwiązanie nie działa jednak, gdy dostosowałeś niektóre twarze, np. Aby miały wyraźną czcionkę, pochylenie itp. Zostałyby one zachowane ze starym rozmiarem i musisz je ustawić indywidualnie.
Cześć Angel
371

Z Emacswiki , GNU Emacs 23 ma wbudowaną kombinację klawiszy:

C-xC-+oraz w C-xC--celu zwiększenia lub zmniejszenia rozmiaru bufora

Brandon Leiran
źródło
29
lub `Cx C- = 'i' Cx C-- '
HongboZhu
59
Jest to lokalne dla tego konkretnego bufora. Kiedy więc przełączysz się na inne pliki, które edytujesz, nie zobaczą efektu tej zmiany. Również po zamknięciu i ponownym otwarciu bufora (lub nawet ponownym uruchomieniu Emacsa), będą miały stary domyślny rozmiar. To może być to, czego chcesz; Po prostu stwierdzam to dla kompletności.
ShreevatsaR
9
OP chce zapisać config w .emacs, a tak nie jest.
xwl
działa w interfejsie użytkownika spacemacs (w macos), aby ustawić w init.el - stackoverflow.com/a/296316/432903
prayagupd
80

Naciśnij Shift i pierwszy przycisk myszy. Możesz zmienić rozmiar czcionki w następujący sposób: Ta strona internetowa zawiera więcej szczegółów.

George Stocker
źródło
1
@AndrewLarned Aby zmienić na stałe, należy dokonać zmiany w pliku .emacs. (Zobacz odpowiedź Chrisa Conwaya na przykład tego, co ma w pliku .emacs.)
Ram Narasimhan
Czy jest jakiś sposób na kontrolowanie, jak bardzo zwiększa lub zmniejsza czcionkę?
Mauricio A. Cinelli
42

M-x customize-face RET defaultpozwoli ci ustawić defaulttwarz, na której opierają się wszystkie inne twarze. Tam możesz ustawić rozmiar czcionki.

Oto, co jest w moich .emacs. w rzeczywistości motyw kolorów ustawi podstawy, a moje niestandardowe ustawienia twarzy zastąpią niektóre elementy. niestandardowe twarze są pisane przez mechanizm dostosowywania twarzy emacsa:

;; 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
źródło
2
Wielu zaawansowanych użytkowników emacsa woli nie używać systemu dostosowywania, ponieważ jest on podatny na błędy i przenika wszystkie dostosowania. Lepiej jest podzielić dostosowanie na pojedyncze pliki .el i załadować je z pliku init.el, a także dodać dostosowania trybu jako elisp w każdym z nich. Zobacz odpowiedź huaiyuan powyżej, aby dowiedzieć się, jak ustawić czcionkę za pomocą elisp.
EdwardGarson,
3
FWIW, opiekun emacsa (prawdopodobnie „zaawansowany” użytkownik emacsa) korzysta z systemu dostosowywania: github.com/jwiegley/dot-emacs/blob/…
Ben
38

To kolejne proste rozwiązanie. Działa również w 24

(set-default-font "Monaco 14")

Skróty:

`C-+` increases font size
`C--` Decreases font size
ravi404
źródło
15

Mam w sobie następujące .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) 

Możesz zastąpić dowolną wybraną czcionkę "Monospace-11". Zestaw dostępnych opcji jest wysoce zależny od systemu. Używanie M-x set-default-fonti sprawdzanie wypełnień kart da ci kilka pomysłów. W moim systemie, z Emacs 23 i włączonym antyaliasingu, mogą wybierać czcionek systemowych według nazwy, na przykład Monospace, Sans Serifitd

Chris Conway
źródło
10

Otwórz emacsa w X11, przejdź do menu Opcje, wybierz „ustaw czcionkę domyślną ...”, zmień rozmiar czcionki. Wybierz „zapisz opcje” w tym samym menu. Gotowy.

TheGreatPower
źródło
Zmiany nie będą się utrzymywać, jeśli zrestartuję emacsa.
zanurza
9

zoom.cfg i global-zoom.cfg zapewniają powiązania zmiany rozmiaru czcionki (z EmacsWiki)

  • Kółko myszy C lub C: zwiększa rozmiar czcionki.
  • C- + lub C-mousewheel-down: zmniejsza rozmiar czcionki.
  • C-0 przywraca domyślny rozmiar czcionki.
David Villa
źródło
8

Oto opcja interaktywnego zmieniania wysokości czcionek, jeden punkt na raz:

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

Jest to preferowane, gdy chcesz zmienić rozmiar tekstu we wszystkich buforach. Nie lubię rozwiązań wykorzystujących text-scale-increasei, text-scale-decreaseponieważ numery linii w rynnie mogą zostać później odcięte.

Kevin Ushey
źródło
To jest doskonałe! Dziękuję bardzo.
Fomentia
7

Firefox i inne programy pozwalają zwiększać i zmniejszać rozmiar czcionki za pomocą C- + i C--. Skonfigurowałem moje .emacs, aby mieć tę samą zdolność, dodając następujące wiersze kodu:

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

(global-set-key [C-kp-subtract] 'text-scale-decrease)
bzimmerly
źródło
5

Aquamaki :

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

Z Emacs Wiki Globalnie zmień domyślną czcionkę , mówi ona, że ​​możesz użyć jednego z tych:

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

(set-frame-font FONT nil t)

Gdzie FONTjest coś takiego "Monaco-16", np .:

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

W pierwszej sugestii na wiki pojawił się dodatkowy nawias zamykający, który spowodował błąd podczas uruchamiania. W końcu zauważyłem dodatkowy nawias zamykający, a następnie poprawiłem sugestię na wiki. Potem obie sugestie zadziałały dla mnie.

7stud
źródło
3

Wszystko zależy od tego, co rozumiesz przez zmianę rozmiaru czcionki. Ta sekcja EmacsWiki zawiera najlepsze i najbardziej kompletne informacje. Rozróżnia różne przypadki (skalowanie tekstu, czcionka ramki, bufor / ramka itp.): Zmiana rozmiaru czcionki .

Rysował
źródło
1

W NTEmacs 23.1 menu Opcje zawiera opcję „Ustaw domyślną czcionkę ...”.

Phil
źródło
1

Jestem zadowolony z konsoli emacs (emacs -nw), nowoczesne implementacje vterm (takie jak gnome-terminal) mają zwykle lepszą obsługę czcionek. Ponadto, jeśli przyzwyczaisz się do tego, możesz użyć tmux, dzięki czemu praca z pełnym środowiskiem na zdalnych serwerach staje się możliwa, nawet bez X.

Blais
źródło
1

W AquaMacs CMD +i CMD -dostosuj rozmiar czcionki dla bieżącego bufora.

Matthew H.
źródło
1

Używam pakietu hydra do ciągłego zwiększania / zmniejszania czcionek poprzez naciskanie f2 + + + +/ f2 - - - -, co oznacza, że ​​naciśnij f2raz, a następnie użyj +/ -tylko do sterowania i przywróć domyślny rozmiar czcionki f2 0. Ponieważ mam klawiaturę, więc również przypisuję klawiaturę do ustawienia czcionki.

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

A nowoczesna funkcja edytora sterowania myszą obsługiwana przez poniższe przypisania klawiszy, naciśnij control + kółko myszy, aby zwiększyć / zmniejszyć czcionkę.

(global-set-key (kbd "<C-wheel-up>") 'text-scale-increase)
(global-set-key (kbd "<C-wheel-down>") 'text-scale-decrease)
Leu_Grady
źródło
Wiązania klawiszy dla kółka myszy nie działają, mam wersjęGNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.10.7)
Zelphir Kaltstahl
1
Byłyby to w (global-set-key (kbd "<C-mouse-4>") 'text-scale-increase) (global-set-key (kbd "<C-mouse-5>") 'text-scale-decrease) mojej wersji emacsa (25)
stefano
1

Oto fragment, który pozwala bezpośrednio określić globalny rozmiar czcionki za pomocą interaktywnej funkcji:

(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
źródło