Emacs快速改变字体大小

Vim、Emacs配置和使用
回复
头像
老蒋
帖子: 52
注册时间: 2007-01-21 15:48
来自: 四川

Emacs快速改变字体大小

#1

帖子 老蒋 » 2012-02-01 12:03

Emacs的默认的字体大小设置比较不方便。
我习惯浏览器风格的按住Ctrl+滚轮,或者Ctrl+=, Ctrl+- 改变字体大小,Ctrl+0恢复默认大小。

使用方法,把以下代码贴到.emacs中
[lisp]
;; Fonts setting
;; 设置两个字体变量,一个中文的一个英文的
;; 之所以两个字体大小是因为有的中文和英文相同字号的显示大小不一样,需要手动调整一下。
(setq cjk-font-size 16)
(setq ansi-font-size 16)

;; 设置一个字体集,用的是create-fontset-from-fontset-spec内置函数
;; 中文一个字体,英文一个字体混编。显示效果很好。
(defun set-font()
(interactive)
(create-fontset-from-fontset-spec
(concat
"-*-fixed-medium-r-normal-*-*-*-*-*-*-*-fontset-myfontset,"
(format "ascii:-outline-Consolas-normal-normal-normal-mono-%d-*-*-*-c-*-iso8859-1," ansi-font-size)
(format "unicode:-microsoft-Microsoft YaHei-normal-normal-normal-*-%d-*-*-*-*-0-iso8859-1," cjk-font-size)
(format "chinese-gb2312:-microsoft-Microsoft YaHei-normal-normal-normal-*-%d-*-*-*-*-0-iso8859-1," cjk-font-size)
;; (format "unicode:-outline-文泉驿等宽微米黑-normal-normal-normal-sans-*-*-*-*-p-*-gb2312.1980-0," cjk-font-size)
;; (format "chinese-gb2312:-outline-文泉驿等宽微米黑-normal-normal-normal-sans-*-*-*-*-p-*-gb2312.1980-0," cjk-font-size)
)))

;; 函数字体增大,每次增加2个字号,最大48号
(defun increase-font-size()
"increase font size"
(interactive)
(if (< cjk-font-size 48)
(progn
(setq cjk-font-size (+ cjk-font-size 2))
(setq ansi-font-size (+ ansi-font-size 2))))
(message "cjk-size:%d pt, ansi-size:%d pt" cjk-font-size ansi-font-size)
(set-font)
(sit-for .5))

;; 函数字体增大,每次减小2个字号,最小2号
(defun decrease-font-size()
"decrease font size"
(interactive)
(if (> cjk-font-size 2)
(progn
(setq cjk-font-size (- cjk-font-size 2))
(setq ansi-font-size (- ansi-font-size 2))))
(message "cjk-size:%d pt, ansi-size:%d pt" cjk-font-size ansi-font-size)
(set-font)
(sit-for .5))

;; 恢复成默认大小16号
(defun default-font-size()
"default font size"
(interactive)
(setq cjk-font-size 16)
(setq ansi-font-size 16)
(message "cjk-size:%d pt, ansi-size:%d pt" cjk-font-size ansi-font-size)
(set-font)
(sit-for .5))

;; 只在GUI情况下应用字体。Console时保持终端字体。
(if window-system
(progn
(set-font)
;; 把上面的字体集设置成默认字体
;; 这个字体名使用是create-fontset-from-fontset-spec函数的第一行的最后两个字段
(set-frame-font "fontset-myfontset")

;; 鼠标快捷键绑定
(global-set-key '[C-wheel-up] 'increase-font-size)
(global-set-key '[C-wheel-down] 'decrease-font-size)
;; 键盘快捷键绑定
(global-set-key (kbd "C--") 'decrease-font-size) ;Ctrl+-
(global-set-key (kbd "C-0") 'default-font-size) ;Ctrl+0
(global-set-key (kbd "C-=") 'increase-font-size) ;Ctrl+=
))
[/lisp]

在Gnu Emacs 23.x win32上测试。
Linux上是类似的,只是修改一下字体集的字体格式和键盘绑定键值。
上次由 老蒋 在 2012-02-07 12:09,总共编辑 2 次。
头像
tonghuix
帖子: 355
注册时间: 2010-10-08 0:55

Re: Emacs快速改变字体大小

#2

帖子 tonghuix » 2012-02-04 16:55

好东西啊!

我喜欢!
/***
* @tonghuix 佟辉 Tong Hui
* @brief 启智开源 编码自由
* @brief Open Source Open Mind, Coding for free!
* @website: https://tonghuix.io
* @weibo http://weibo.com/234826309
* @Twitter http://twitter.com/tonghuix
* @G+ http://gplus.to/tonghuix
*/
lkymlf598
帖子: 2
注册时间: 2010-11-14 16:44

Re: Emacs快速改变字体大小

#3

帖子 lkymlf598 » 2012-07-01 10:24

无效果
lkymlf598
帖子: 2
注册时间: 2010-11-14 16:44

Re: Emacs快速改变字体大小

#4

帖子 lkymlf598 » 2012-07-01 10:30

试试这些吧
放大字体: Ctrl-x Ctrl-+ 或 Ctrl-x Ctrl-=
缩小字体: Ctrl-x Ctrl–
重置字体: Ctrl-x Ctrl-0

;; For Linux
(global-set-key (kbd "<C-mouse-4>") 'text-scale-increase)
(global-set-key (kbd "<C-mouse-5>") 'text-scale-decrease)

;; For Windows
(global-set-key (kbd "<C-wheel-up>") 'text-scale-increase)
(global-set-key (kbd "<C-wheel-down>") 'text-scale-decrease)
头像
fenghelong
帖子: 179
注册时间: 2011-06-20 12:59
系统: MacOS,Ubuntu
来自: 上海市闵行区
联系:

Re: Emacs快速改变字体大小

#5

帖子 fenghelong » 2012-12-17 3:19

还是这个靠谱些蛮 :em04
Happy Life.
头像
jobinson99
帖子: 1169
注册时间: 2007-04-28 15:14
系统: NixOS+虚拟机各种系统
联系:

Re: Emacs快速改变字体大小

#6

帖子 jobinson99 » 2012-12-31 2:31

lkymlf598 写了:试试这些吧
放大字体: Ctrl-x Ctrl-+ 或 Ctrl-x Ctrl-=
缩小字体: Ctrl-x Ctrl–
重置字体: Ctrl-x Ctrl-0

;; For Linux
(global-set-key (kbd "<C-mouse-4>") 'text-scale-increase)
(global-set-key (kbd "<C-mouse-5>") 'text-scale-decrease)

;; For Windows
(global-set-key (kbd "<C-wheel-up>") 'text-scale-increase)
(global-set-key (kbd "<C-wheel-down>") 'text-scale-decrease)
呀,emacs24默认就有的啊,刚刚发现,不过没用过,因为老早自己就设定好了默认字体大小了。
黑色的不是眼睛,而是眼圈
关注和实现科技领域未来3年内有大规模普及潜力、能改善穷人生活品质的技术/应用。
NixOS + lxqt + 无人生产线 + 无人农场 (已发明全套山地农业机械 + 线性喷洒系统,成片农业采收系统)+ 随身设备,柔性电路,冷热双调衣……
bluebirdshao
帖子: 186
注册时间: 2007-11-26 12:05

Re: Emacs快速改变字体大小

#7

帖子 bluebirdshao » 2013-01-13 1:09

jobinson99 写了:
lkymlf598 写了:试试这些吧
放大字体: Ctrl-x Ctrl-+ 或 Ctrl-x Ctrl-=
缩小字体: Ctrl-x Ctrl–
重置字体: Ctrl-x Ctrl-0

;; For Linux
(global-set-key (kbd "<C-mouse-4>") 'text-scale-increase)
(global-set-key (kbd "<C-mouse-5>") 'text-scale-decrease)

;; For Windows
(global-set-key (kbd "<C-wheel-up>") 'text-scale-increase)
(global-set-key (kbd "<C-wheel-down>") 'text-scale-decrease)
呀,emacs24默认就有的啊,刚刚发现,不过没用过,因为老早自己就设定好了默认字体大小了。
竟然还有这等神器功能
收下!
回复