Làm cách nào để đặt phông chữ mặc định trong Emacs?


31

Tôi không thể đặt Inconsolata làm phông chữ mặc định trong Emacs 24.4 Linux.

  • Tôi đã thay đổi phông chữ trong menu -> Lưu tùy chọn. Phông chữ đã thay đổi nhưng sau khi khởi động lại, phông chữ vẫn giống như mặc định.
  • Đã thêm cái này vào ~/.Xresources: Emacs.font: Inconsolata LGC

    Sau đó trong init.el: (set-default-font "Inconsolata LGC"). Cùng một câu chuyện.

Tôi đang làm gì sai?


Nếu phông chữ hoạt động khi bạn đặt nó, nhưng lại biến mất vào lần tiếp theo bạn tải emacs, đây có thể là một vấn đề trong đó các cài đặt tùy chỉnh của bạn (hoặc không) được lưu vào.
nispio

Tôi sử dụng emacsclient với emacs bắt đầu như một daemon. Tôi thay đổi cài đặt trong init.el và sau khi lưu khởi động lại daemon.
Maglight

2
Đây có phải là cụ thể cho Emacs 24.4? IOW, bạn có nhận được hành vi khác nhau trong bản dựng / phát hành khác không? Nếu không, hãy xem xét xóa tham chiếu đến 24.4.
vẽ

Vì bạn đang bắt đầu emacs như một daemon, hãy kiểm tra tất cả đầu ra của bàn điều khiển từ cuộc gọi của bạn đến emacs --daemonvà đảm bảo rằng không có thông báo lỗi.
nispio

Tôi có cái này trong init.el: (set-frame-font "Ubuntu Mono 11")
thdox

Câu trả lời:


29

Tôi có các mục sau trong .emacs của mình bằng Emacs cho OSX:

(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 130 :width normal :family "Inconsolata")))))

Đặt phông chữ

Dễ dàng nhất để đặt phông chữ bằng các menu nếu bạn đang chạy Emacs trong môi trường đồ họa. Sử dụng "Tùy chọn -> Đặt phông chữ mặc định ..." từ các menu.

Bây giờ, bạn chưa hoàn thành vì bạn chỉ thay đổi phông chữ tạm thời. Phương pháp đơn giản nhất mà tôi biết là sử dụng chế độ tùy biến.

M-x customize-face RET default RET

Bây giờ thay đổi các tùy chọn bạn muốn thay đổi, nếu có. Nếu bạn đã thay đổi phông chữ bằng các menu, bạn sẽ thấy những thay đổi của mình ở đây.

Lưu vào tập tin init của bạn

Tiết kiệm cho các phiên trong tương lai bằng cách:

  • Nhấp vào nút Trạng thái và chọn Lưu cho các phiên trong tương lai

hoặc là

  • C-x C-s trong khi trong bộ đệm Tùy biến sẽ nên làm điều tương tự nhưng không phải lúc nào cũng hoạt động, ví dụ như sau(set-default-font "Inconsolata")

Nếu vẫn thất bại ...

Bạn có thể gặp may mắn với trang Đặt Phông chữ .


16

Tôi sử dụng điều này trong init.el của tôi:

;; Set default font
(set-face-attribute 'default nil
                    :family "Source Code Pro"
                    :height 110
                    :weight 'normal
                    :width 'normal)

Bạn có thể thử tương tự bằng Inconsolata thay vì Source Code Pro.


Đã thêm nó trong init.el. Sau khi khởi động lại vẫn phông chữ theo mặc định.
Maglight

Bạn đã gõ "InconsolataLGC" mà không có khoảng trống giữa "Inconsolata" và "LGC" chưa?
Boccaperta-IT

Vâng, tôi cũng đã cố gắng đặt nó thành Terminus.
Maglight

1
Hãy thử chạy fc-cache -fvtừ thiết bị đầu cuối của bạn. Có thể bộ đệm phông chữ không cập nhật. Tôi đã thử cài đặt Anonymous Pro và nó hoạt động trên máy của tôi.
Boccaperta-IT

Cảm ơn, nhưng điều đó không giúp được gì. Tôi có thể đặt phông chữ này, nhưng Emacs không lưu nó trong các phiên sau.
Maglight

12

Nếu bạn đã thay đổi một cái gì đó trong tệp .Xresource thì bạn cần đọc lại để xem bất kỳ thay đổi nào trong phiên hiện tại.

  • Để giữ cài đặt tài nguyên cũ của bạn và áp dụng cái mới:

    xrdb -merge ~/.Xresources
    
  • Để loại bỏ tài nguyên cũ của bạn và chỉ áp dụng cài đặt từ .Xresource :

    xrdb ~/.Xresources
    

Điều chỉnh trong tệp .Xresource tốt hơn, vì chúng được áp dụng trước khi ánh xạ cửa sổ X11 của emacs. Các tùy chỉnh trong tệp init (.emacs, .emacs.d /) được áp dụng lại cho cửa sổ đã được tạo. Ví dụ, bạn có thể tránh các thanh công cụ "nhấp nháy" trong khi khởi động khi bạn thêm

! UI elements
Emacs.menuBar: 0
Emacs.toolBar: 0
Emacs.verticalScrollBars: off
! Font settings
Emacs.FontBackend: xft,x
Emacs.font: Inconsolata LGC:size=16

vào tệp .Xresource của bạn .

Bạn có thể kiểm tra những thứ khác có sẵn tại https://www.gnu.org/software/emacs/manual/html_node/emacs/X-Resource.html


5

Điều này luôn hoạt động bất cứ khi nào tôi muốn thử các phông chữ khác (đặt nó vào tệp init.el hoặc .emacs của bạn):

(push '(font . "Inconsolata") default-frame-alist)

hoặc là

(add-to-list 'default-frame-alist '(font . "Inconsolata"))

Trong trường hợp này cả hai biểu thức là tương đương.

Nói tóm lại, các biểu mẫu này đặt phông chữ cho các khung Emacs hiện tại và trong tương lai. Vì chúng được lưu trong tệp cấu hình của bạn, nên thiết lập không bị mất khi khởi động lại.


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.