Emacs'da yazı tipi boyutu nasıl ayarlanır?


Yanıtlar:


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

Değer 1 / 10pt'dir, bu yüzden 100 size 10pt verir, vb.


2
Bunu yapmaya çalışıyorum, ancak Emacs 23.1.1'de otomatik tamamlama yalnızca seçenekleri gösterecektir 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 Hangi otomatik tamamlama? Benim Emacs, set-face-attributegerçekten M-x( execute-extended-command) eksik , ama M-:( eval-expression) ve C-h f( describe-function) 'de mevcuttur. M-:bunu .emacsdosyanıza koymak istemiyorsanız muhtemelen istediğiniz şeydir .
Rory O'Kane

1
@ RoryO'Kane Neden bazı komutlar kullanılamıyor M-x? Noob sorusu, eminim, ama emacs düşük bir seviyede nasıl çalışır "aşina değilim
DavidS

6
@DavidS Güzel soru. “ Neden bazı Emacs işlevleri üzerinden ulaşılamıyor M-x? ”. Cevabı araştırmanın eğitimsel olduğu ortaya çıktı.
Rory O'Kane

Bu çözüm, örneğin farklı bir yazı tipi, eğik, vb. Gibi bazı yüzleri özelleştirdiğinizde işe yaramaz. Eski boyutta bırakılırlar ve bunları ayrı ayrı ayarlamanız gerekir.
Hi-Angel

371

Gönderen Emacswiki , GNU Emacs 23 yerleşik bir anahtar kombinasyonu:

C-xC-+ve C-xC--arabellek metni boyutunu artırmak veya azaltmak için


29
veya 'Cx C- =' ve 'Cx
C--

59
Bu, belirli bir arabellek için yereldir. Dolayısıyla, düzenlediğiniz diğer dosyalara geçtiğinizde, bu değişikliğin etkisini görmezler. Ayrıca arabelleği kapatıp yeniden açtığınızda (hatta Emacs'ı yeniden başlattığınızda), eski varsayılan boyutta olurlar. İstediğiniz bu olabilir; Bunu tamlık için söylüyorum.
ShreevatsaR

9
OP, yapılandırmayı .emacs dosyasına kaydetmek istiyor ve bunu yapmıyor.
15'te xwl

inem.el'de ayarlamak için spacemacs UI'de (macos'ta) çalışır - stackoverflow.com/a/296316/432903
prayagupd

80

Shift tuşuna ve ilk fare düğmesine basın. Yazı tipi boyutunu aşağıdaki şekilde değiştirebilirsiniz: Bu web sitesinde daha fazla ayrıntı var.


1
@AndrewLarned Değişikliği kalıcı hale getirmek için, değişikliği .emacs dosyanızda yaparsınız. (.Emacs dosyasında neler olduğuna dair bir örnek için Chris Conway'in cevabına bakınız.)
Ram Narasimhan

Bunu yaparken yazı tipini ne kadar artırdığını veya azalttığını kontrol etmenin bir yolu var mı?
Mauricio A. Cinelli

42

M-x customize-face RET defaultdefaultdiğer tüm yüzlerin dayandığı yüz yüzünü ayarlamanızı sağlar . Burada yazı tipi boyutunu ayarlayabilirsiniz.

İşte benim .emacs. Aslında, renk teması temelleri ayarlar, sonra özel yüz ayarım bazı şeyleri geçersiz kılar. custom-set-faces emacs'ın custom-face mekanizması ile yazılmıştır:

;; 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
Birçok gelişmiş emacs kullanıcısı, hataya eğilimli olduğu ve tüm özelleştirmeleri karıştırdığı için özelleştirme sistemini kullanmamayı tercih eder. Özelleştirmenizi ayrı .el dosyalarına bölmek ve init.el dosyasından yüklemek ve mod özelleştirmelerinizi her biri içinde elisp kodu olarak eklemek daha iyidir. Elisp ile yazı tipinin nasıl ayarlanacağını görmek için yukarıdaki huaiyuan'ın cevabına bakın.
EdwardGarson

3
Emacs sürdürücü FWIW (muhtemelen "gelişmiş" emac
Ben

38

Bu başka bir basit çözüm. 24 saatte de çalışır

(set-default-font "Monaco 14")

Kısa yollar:

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

15

Bende aşağıdakiler var .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) 

Seçtiğiniz herhangi bir yazı tipini değiştirebilirsiniz "Monospace-11". Kullanılabilir seçenekler kümesi yüksek oranda sisteme bağlıdır. M-x set-default-fontSekme tamamlamalarını kullanmak ve bakmak size bazı fikirler verecektir. Emacs 23 ve etkin anti-aliasing ile benim sistemde, günü, isim, örneğin tarafından sistem yazı tiplerini seçebilir Monospace, Sans Serifvb


10

Em11'leri X11'de açın, seçenekler menüsüne gidin, "varsayılan yazı tipini ayarla ..." yı seçin, yazı tipi boyutunu değiştirin. Aynı menüden "seçenekleri kaydet" i seçin. Bitti.


Emacs'ı yeniden başlatırsam değişiklikler devam etmez.
eğimler

9

zoom.cfg ve global-zoom.cfg yazı tipi boyutu değiştirme bağlamaları sağlar (EmacsWiki'den)

  • C-- veya C fare tekerleği yukarı: yazı tipi boyutunu büyütür.
  • C- + veya C-fare tekerleği aşağı: yazı tipi boyutunu küçültür.
  • C-0 yazı tipi boyutunu varsayılana döndürür.

8

İşte yazı tipi yüksekliklerini etkileşimli olarak, her seferinde bir nokta olarak yeniden boyutlandırma seçeneği:

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

Tüm arabelleklerde metni yeniden boyutlandırmak istediğinizde bu tercih edilir . Oluktaki satır numaralarını kullanarak çözümleri sevmiyorum text-scale-increaseve text-scale-decreasedaha sonra oluktaki satır numaraları kesilebilir.


Bu harika! Çok teşekkür ederim.
Fomentia

7

Firefox ve diğer programlar C- + ve C-- ile yazı tipi boyutunu artırmanıza ve azaltmanıza olanak tanır. Bu kod satırlarını ekleyerek aynı yeteneğe sahip olacak şekilde .emacs ayarladım:

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

Emacs Wiki'den Varsayılan Yazı Tipini Global Olarak Değiştirin, bunlardan birini kullanabileceğinizi söylüyor:

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

(set-frame-font FONT nil t)

FONTGibi bir şey nerede "Monaco-16", örneğin:

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

Wiki'nin ilk önerisinde, başlangıçta hataya neden olan ekstra bir kapanış parantezi vardı. Sonunda ekstra kapanış parantezini fark ettim ve daha sonra wiki'deki öneriyi düzelttim. Sonra her iki öneri benim için çalıştı.


3

Her şey yazı tipi boyutunu değiştirerek ne demek istediğinize bağlıdır. Bu EmacsWiki bölümü en iyi ve en eksiksiz bilgileri sağlar. Çeşitli durumları (metin ölçeklendirme, çerçeve yazı tipi, arabellek / çerçeve vb.) Ayırır : Yazı Tipi Boyutunu Değiştirme .


1

NTEmacs 23.1'de, Seçenekler menüsünde "Varsayılan yazı tipini ayarla ..." seçeneği bulunur.


1

Konsol emacs (emacs -nw) ile mutluyum, modern vterm uygulamaları (gnome terminali gibi) daha iyi yazı tipi desteğine sahip olma eğilimindedir. Ayrıca buna alışırsanız, tmux'u kullanabilirsiniz ve böylece X olmadan bile uzak ortamlarda tam ortamınızla çalışmak mümkün olur.


1

AquaMac'lerde CMD +ve CMD -geçerli arabellek için yazı tipi boyutunu ayarlayın.


1

Kullandığım Hidra basarak bitişik azaltmak / kontrol yazı artışa paketi f2 + + + +/ f2 - - - -basın o hangi vasıta f2kez ve daha sonra kullanarak +/ -sadece kontrol ve varsayılan yazı tipi boyutunu geri f2 0. Tuş takımım olduğu için tuş takımını yazı tipi ayarına da bağlarım.

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

Ve aşağıdaki tuş bağlamaları tarafından desteklenen modern editör fare kontrol işlevselliği, yazı tipini artırmak / azaltmak için kontrol + fare tekerleğine basın.

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

Fare tekerleği için önemli bağlamalar işe yaramıyor, versiyonum varGNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.10.7)
Zelphir Kaltstahl 13:15

1
Bunlar (global-set-key (kbd "<C-mouse-4>") 'text-scale-increase) (global-set-key (kbd "<C-mouse-5>") 'text-scale-decrease) benim emacs (25) sürümünde olurdu
stefano

1

Etkileşimli bir işlev kullanarak genel yazı tipi boyutunu doğrudan belirtmenize izin veren bir snippet:

(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))))))
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.