;; 方法二 可执行,但字体无法改变(from:http://blog.waterlin.org/articles/set-emacs-fonts.html)
aaaa
Emacs默认的字体太小、太粗糙,看起来很不舒服,不设置实在是对不起自己的眼睛。但是,在Emacs里挑选合适的字体是个比较麻烦的事情,让初学者望而却步。本文推荐大家用一种比较直观的办法来设置自己喜欢的字体。
首先,在Emacs中,通过菜单Options –> Set Default Font,设置好你喜欢的字体。
然后,把光标放到你所在的字体上,用命令M-x describe-font来查看你当前使用的字体名称、字号大小。
把其中的字体信息拷贝出来,写到.emacs文件里
(set-default-font “-outline-Courier New-normal-italic-normal-mono-16-*-*-*-c-*-iso8859-1″)
注意,这里的字号16是Emacs自己的XLFD字号的大小值,跟你刚刚在对话框里设置的不一样。
这样,你下次打开Emacs的时候,就可以使用你当前设置好的字体了。
其实,在Emacs23里,因为采用了新的fontconfig字体描述格式,对这个语句的写法有着更加人性化的写法。可以直接把你对话框的内容按下面的形式写到.emacs里:
(set-default-font “Courier New-14″)
其中Courier New为字体,14为对话框里设置的字体大小。
当然,还有更灵活的查询功能。可以用下面这个语句来调出设置字体的对话框:(w32-select-font nil t)
只要把它放到*scratch*里,然后在行末按C-j即可运行。
同样,如果你要查询Emacs里能使用的所有字体名称,可以用这个命令:(insert (prin1-to-string (x-list-fonts “*”)))
在行末用C-x C-e来运行即可。
;;方法三 不能执行(from:http://forum.ubuntu.org.cn/viewtopic.php?f=68&t=362157)
;; 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+=
))