2011-10-23 43 views
5

Tôi đã cố gắng thay đổi phông chữ/khuôn mặt cho emacs minibuffer riêng biệt với các phông chữ mặc định của emacs, nhưng không có nhiều may mắn.Thay đổi kích thước phông chữ cho minibuffer Emacs tách biệt với các emacs mặc định?

Cụ thể, tôi quan tâm đến việc tạo kích thước phông chữ nhỏ hơn để sử dụng với các emacs MULE, với cài đặt phông chữ hiện tại của tôi hoặc nếu tôi đang sử dụng emacs trên màn hình "netbook", đôi khi các tùy chọn ký tự trong MULE là một chút nhỏ.

Tùy chọn dễ dàng truy cập trong các emacs là dấu nhắc đơn giản & minibuffer-prompt-properties, nhưng đây chỉ là lời nhắc lệnh và không phải là văn bản minibuffer thông thường.

Dường như có một số biến số minibuffer được liệt kê trong biểu tượng emacs để tạo khung nhỏ, hoặc nhận nội dung từ cửa sổ minibuffer, v.v. nhưng không liên quan đến việc thay đổi mặt minibuffer. Thậm chí có thể thay đổi mặt minibuffer tách biệt với các emacs mặc định không?

Một tùy chọn thú vị là dự án oneonone emacs http://www.emacswiki.org/emacs/OneOnOneEmacs. Nhưng khung xe minibuffer chuyên dụng có thể thay đổi không? Ngoài ra trước khi tôi thay đổi thiết lập emacs hiện tại của tôi mà quyết liệt, tôi hy vọng sẽ có thể chỉ thay đổi phông chữ đầu tiên hoặc tạo khung minibuffer thay đổi của riêng tôi, ...

Bất kỳ trợ giúp và/hoặc ý tưởng sáng tạo sẽ là đánh giá cao.

Trả lời

5

Bạn có thể thêm tùy chỉnh cho minibuffer thông qua minibuffer-setup-hook. Trong đó, bạn có thể làm một số face remapping như vậy:

(add-hook 'minibuffer-setup-hook 'my-minibuffer-setup) 
(defun my-minibuffer-setup() 
     (set (make-local-variable 'face-remapping-alist) 
      '((default :height 2.0)))) 

Thay đổi cơ thể của my-minibuffer-setup như mong muốn. Ở trên tăng gấp đôi chiều cao của khuôn mặt mặc định.

+0

Đây là một trợ giúp tuyệt vời, tuy nhiên, nó chỉ thay đổi một số khía cạnh. Tôi đã thực hiện các lỗi giả định các mục hoàn thành MULE là quán trọ minibuffer, nhưng điều này dường như không đúng sự thật. Các mã ảnh hưởng đến minibuffer xảy ra khi tôi đầu vào một cái gì đó, nói rằng bằng cách sử dụng C-x C-f để tìm một tập tin. Tôi đã sử dụng cùng một mã để thay thế echoaea của emacs, tuy nhiên đây cũng không phải là cửa sổ mà MULE sử dụng để liệt kê các lần hoàn thành của nó. Có một phương pháp để tìm ra tên của cửa sổ được tạo ra bởi MULE? Có lẽ biết điều này, mã trên có thể được thay đổi để ảnh hưởng đến mục này. – Steve

+0

Dường như MULE mở một bộ đệm gọi là * Hoàn thành Quail *.Bộ đệm này trống khi trao đổi với nó, nhưng nó chắc chắn được tạo ra khi các emacs dislpays các nhân vật hoàn thành. – Steve

0

Có, bạn có thể dễ dàng tùy chỉnh các thuộc tính của khung xe minibuffer độc lập, bao gồm khuôn mặt và phông chữ mặc định của nó.

Bạn có thể tùy chỉnh tùy chọn người dùng OneOnOneEmacs1on1-minibuffer-frame-alist. (Hoặc bạn có thể tùy chỉnh tùy chọn tiêu chuẩn minibuffer-frame-alist - giá trị tham số khung của nó được sử dụng làm mặc định bằng 1on1-minibuffer-frame-alist.)

Tham số khung font là tham số điều khiển phông chữ (duh). Vì vậy, bạn sẽ tùy chỉnh tùy chọn 1on1-minibuffer-frame-alist, thay đổi cài đặt cho phông chữ.

Ngoài ra, bạn chỉ có thể thiết lập 1on1-minibuffer-frame-font để font bạn muốn - nó được sử dụng như giá trị mặc định cho cài đặt phông chữ bằng 1on1-minibuffer-frame-alist bất cứ khi nào không có font cài đặt rõ ràng trong minibuffer-frame-alist. Ví dụ:

 
    (setq 1on1-minibuffer-frame-font 
      "-*-Lucida Console-normal-r-*-*-14-112-96-96-c-*-iso8859-1") 

Nếu bạn không muốn sử dụng khung nhỏ gọn độc lập thì hãy xem Câu trả lời của Trey.

Các vấn đề liên quan