2014-07-11 28 views
3

使用CX C- +CX C--(文本尺度調整)是增加/在一個減小字體大小很方便緩衝區。當少數人在同一臺顯示器前一起工作時,這很好地減少了碰撞。增加/減小字體大小在emacs的幀(不只是緩衝)

有沒有辦法在一個(或所有幀同時)中增加(以及後來減少)字體大小?我想知道是否有一種方法比在每個新緩衝區中重新鍵入1-30重新輸入Cx C- +,2-調用Mx x選擇字體並使用鼠標進行選擇,以及3-在臨時緩衝區中運行elisp代碼。

更新:

如果你有興趣在滿足不只是1-3之上,但也:

4- Keep the size (and position) of the frame still. 

然後看看this問題。

回答

2

見Emacs的Wiki頁面約frame zooming

它告訴你幾種方法來做到這一點,包括庫的命令zoom-frm.el,doremi-frm.elframe-cmds.el

特別是,單個命令zoom-in/out可以讓您放大或縮小幀或緩衝區。 (原:縮放框架,爲你的要求是什麼。)

1

這是不這樣做的最正確的方法,我在過去使用這些功能的框架調整大小做框架:

在這通過更改默認面的:height屬性來完成。

(defun zoom-frame (&optional n frame amt) 
    "Increase the default size of text by AMT inside FRAME N times. 
    N can be given as a prefix arg. 
    AMT will default to 10. 
    FRAME will default the selected frame." 
    (interactive "p") 
    (let ((frame (or frame (selected-frame))) 
     (height (+ (face-attribute 'default :height frame) (* n (or amt 10))))) 
    (set-face-attribute 'default frame :height height) 
    (when (called-interactively-p) 
     (message "Set frame's default text height to %d." height)))) 

(defun zoom-frame-out (&optional n frame amt) 
    "Call `zoom-frame' with -N." 
    (interactive "p") 
    (zoom-frame (- n) frame amt)) 


(global-set-key (kbd "C-c z i") 'zoom-frame) 

(global-set-key (kbd "C-c z o") 'zoom-frame-out) 

這秤整體框架,不只是文本,所以它會縮小或增加您的桌面上,可能越來越多的能見度範圍之外,並要求從您的操作系統重繪。

另一個可能的解決方案是我可以研究,將幀局部變量設置爲所需的高度,並使用每次選擇緩衝區時都會運行的掛鉤,以將該緩衝區中的文本重新顯示爲幀的期望大小。除非兩幀顯示緩衝區,否則這將工作得很好。

相關問題