Làm cách nào để đặt cỡ chữ trong Emacs?


340

Tôi cũng muốn lưu kích thước phông chữ trong .emacstập tin của tôi .



3
Đây là câu trả lời đơn giản nhất có hiệu quả với tôi stackoverflow.com/a/6050987/215094
Zeynel

3
Novice, sử dụng .emacs.d/init.elthay thế tốt hơn (kiểm soát phiên bản sạch hơn và tốt hơn)
Lorem Ipsum Dolor

Câu trả lời:


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

Giá trị nằm trong 1 / 10pt, vì vậy 100 sẽ cung cấp cho bạn 10pt, v.v.


2
Tôi đang cố gắng thực hiện việc này, nhưng trong Emacs 23.1.1, tự động hoàn thành sẽ chỉ hiển thị các tùy chọn 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 Tự động hoàn thành? Trong Emacs của tôi, set-face-attributethực sự bị thiếu từ M-x( execute-extended-command), nhưng nó hiện diện trong M-:( eval-expression) và C-h f( describe-function). M-:có lẽ là những gì bạn muốn, nếu bạn không muốn đặt nó trong .emacstập tin của bạn .
Rory O'Kane

1
@ RoryO'Kane Tại sao một số lệnh không khả dụng qua M-x? Câu hỏi của Noob, tôi chắc chắn, nhưng tôi không quen với cách emacs "hoạt động" ở mức độ thấp
DavidS

6
@DavidS Câu hỏi hay. Tôi đã viết lên một câu trả lời tại tại sao một số chức năng Emacs không có sẵn thông qua M-x? Mùi. Nghiên cứu câu trả lời hóa ra là giáo dục.
Rory O'Kane

Giải pháp này không hoạt động mặc dù khi bạn đã tùy chỉnh một số khuôn mặt, ví dụ: có phông chữ riêng biệt, nghiêng, v.v. Chúng sẽ được để lại với kích thước cũ và bạn phải đặt riêng chúng.
Hi-Angel

371

Từ Emacswiki , GNU Emacs 23 có tổ hợp phím tích hợp:

C-xC-+C-xC--để tăng hoặc giảm kích thước văn bản bộ đệm


29
hoặc `Cx C- = 'và' Cx C-- '
HongboZhu

59
Đây là cục bộ của bộ đệm cụ thể đó. Vì vậy, khi bạn chuyển sang các tệp khác mà bạn đang chỉnh sửa, họ sẽ không thấy tác động của thay đổi này. Ngoài ra, khi bạn đóng và mở lại bộ đệm (hoặc thậm chí khởi động lại Emacs), chúng sẽ ở kích thước mặc định cũ. Đây có thể là những gì bạn muốn; Tôi chỉ nói điều này cho đầy đủ.
ShreevatsaR

9
OP muốn lưu cấu hình trong .emacs, và điều này thì không.
xwl

hoạt động trong giao diện người dùng spacemacs (bằng macos), để thiết lập trong
init.el

80

Nhấn Shift và nút chuột đầu tiên. Bạn có thể thay đổi kích thước phông chữ theo cách sau: Trang web này có nhiều chi tiết hơn.


1
@AndrewLarned Để thay đổi vĩnh viễn, bạn sẽ thực hiện thay đổi trong tệp .emacs của mình. (Xem câu trả lời của Chris Conway để biết ví dụ về những gì anh ta có trong tệp .emacs của mình.)
Ram Narasimhan

Có cách nào để kiểm soát mức độ tăng hoặc giảm phông chữ khi làm điều này không?
Mauricio A. Cinelli

42

M-x customize-face RET defaultsẽ cho phép bạn đặt khuôn defaultmặt, trên đó tất cả các khuôn mặt khác dựa vào. Ở đó bạn có thể đặt kích thước phông chữ.

Đây là những gì trong .emacs của tôi. thực tế, chủ đề màu sẽ thiết lập các điều cơ bản, sau đó cài đặt khuôn mặt tùy chỉnh của tôi sẽ ghi đè lên một số nội dung. các mặt tùy chỉnh được đặt theo cơ chế mặt tùy chỉnh của 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
Nhiều người dùng emacs tiên tiến không thích sử dụng hệ thống tùy chỉnh, vì nó dễ bị lỗi và xen kẽ tất cả các tùy chỉnh. Tốt hơn hết là chia tùy chỉnh của bạn thành các tệp .el riêng lẻ và tải chúng từ init.el và thêm các tùy chỉnh chế độ của bạn dưới dạng mã elisp trong mỗi tệp. Xem câu trả lời của huaiyuan ở trên để xem cách đặt phông chữ qua elisp.
EdwardGarson

3
FWIW, người duy trì emacs (có lẽ là người dùng "tiên tiến" của emacs) sử dụng hệ thống tùy chỉnh: github.com/jwiegley/dot-emacs/blob/ trộm
Ben

38

Đây là một giải pháp đơn giản khác. Hoạt động trong 24 là tốt

(set-default-font "Monaco 14")

Cắt ngắn:

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

15

Tôi đã có những điều sau đây trong .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) 

Bạn có thể đăng ký bất kỳ phông chữ nào bạn chọn "Monospace-11". Tập hợp các tùy chọn có sẵn phụ thuộc nhiều vào hệ thống. Sử dụng M-x set-default-fontvà nhìn vào các hoàn thành tab sẽ cung cấp cho bạn một số ý tưởng. Trên hệ thống của tôi, với Emacs 23 và anti-aliasing kích hoạt, có thể chọn phông chữ hệ thống theo tên, ví dụ Monospace, Sans Serifvv


10

Mở emacs trong X11, menu goto Tùy chọn, chọn "đặt phông chữ mặc định ...", thay đổi kích thước phông chữ. Chọn "tùy chọn lưu" trong cùng một menu. Làm xong.


Những thay đổi không tồn tại nếu tôi khởi động lại emacs.
giảm

9

zoom.cfgglobal-zoom.cfg cung cấp các ràng buộc thay đổi kích thước phông chữ (từ EmacsWiki)

  • C-- hoặc C-mousewheel-up: tăng kích thước phông chữ.
  • C- + hoặc C-mousewheel-down: giảm kích thước phông chữ.
  • C-0 hoàn nguyên kích thước phông chữ về mặc định.

8

Đây là một tùy chọn để thay đổi kích thước chiều cao phông chữ một cách tương tác, mỗi lần một điểm:

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

Điều này là thích hợp hơn khi bạn muốn thay đổi kích thước văn bản trong tất cả các bộ đệm. Tôi không thích các giải pháp sử dụng text-scale-increasetext-scale-decreasevì số dòng trong máng xối có thể bị cắt sau đó.


Đây là hoàn hảo! Cảm ơn bạn rất nhiều.
Fomentia

7

Firefox và các chương trình khác cho phép bạn tăng và giảm kích thước phông chữ bằng C- + và C--. Tôi thiết lập .emacs của mình để tôi có khả năng tương tự bằng cách thêm các dòng mã này:

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

Từ Wiki Emacs thay đổi toàn cầu Phông chữ mặc định , nó cho biết bạn có thể sử dụng một trong hai cách sau:

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

(set-frame-font FONT nil t)

Trường hợp FONTnhư thế nào "Monaco-16", ví dụ:

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

Có một dấu ngoặc đơn đóng thêm trong đề xuất đầu tiên trên wiki, điều này gây ra lỗi khi khởi động. Cuối cùng tôi đã nhận thấy dấu ngoặc đơn đóng thêm và sau đó tôi đã sửa đề xuất trên wiki. Sau đó, cả hai gợi ý làm việc cho tôi.


3

Tất cả phụ thuộc vào ý của bạn bằng cách thay đổi kích thước phông chữ. Phần EmacsWiki này cung cấp thông tin tốt nhất và đầy đủ nhất. Nó phân biệt các trường hợp khác nhau (tỷ lệ văn bản, phông chữ khung, bộ đệm / khung, v.v.): Thay đổi kích thước phông chữ .


1

Trong NTEmacs 23.1, menu Tùy chọn có tùy chọn "Đặt phông chữ mặc định ...".


1

Tôi hài lòng với các bảng điều khiển emacs (emacs -nw), các triển khai vterm hiện đại (như gnome-terminal) có xu hướng hỗ trợ phông chữ tốt hơn. Ngoài ra, nếu bạn đã quen với điều đó, thì bạn có thể sử dụng tmux và do đó làm việc với môi trường đầy đủ của bạn trên các máy chủ từ xa là có thể, ngay cả khi không có X.


1

Trong AquaMacs CMD +CMD -điều chỉnh kích thước phông chữ cho bộ đệm hiện tại.


1

Tôi sử dụng gói hydra để kiểm soát tăng / giảm phông chữ liên tục bằng cách nhấn f2 + + + +/ f2 - - - -, có nghĩa là nhấn f2một lần, sau đó chỉ sử dụng +/ -để kiểm soát và khôi phục kích thước phông chữ mặc định f2 0. Bởi vì tôi có bàn phím, vì vậy tôi cũng liên kết bàn phím với cài đặt phông chữ.

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

Và chức năng điều khiển chuột biên tập hiện đại được hỗ trợ bởi các ràng buộc chính bên dưới, nhấn control + bánh xe chuột để tăng / giảm phông chữ.

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

Các ràng buộc chính cho bánh xe chuột không hoạt động, tôi có phiên bảnGNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.10.7)
Zelphir Kaltstahl

1
Đó sẽ là (global-set-key (kbd "<C-mouse-4>") 'text-scale-increase) (global-set-key (kbd "<C-mouse-5>") 'text-scale-decrease) trong phiên bản emacs của tôi (25)
stefano

1

Đây là đoạn mã cho phép bạn chỉ định trực tiếp kích thước phông chữ chung bằng chức năng tương tác:

(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))))))
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.