LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1901|回复: 23

X Window System 和 Emacs 有关的一个小技巧

[复制链接]
发表于 2005-10-21 21:40:35 | 显示全部楼层 |阅读模式
想调整 Emacs 的字体吗?写 .Xresources 文件吧。第一步,先写个框架:
  1. Emacs.Fontset-0:-*-courier-medium-r-normal--20-*-*-*-*-*-xgp-20,\
  2.         chinese-gb2312:-*-simsun-*-gb18030.2000-0
复制代码

打开 Emacs 后,在 *scratch* 时输入汉字,并用 M-x describe-fontset 来查看 FontSet 的具体信息,可以找到应用于 chinese-gb2312 编码的字体。在我这里,是这样的:
  1. chinese-gb2312                -*simsun-*-gb18030.2000-0
  2.     [-misc-simsun-medium-r-normal--17-120-75-100-p-90-gb18030.2000-0]
复制代码

然而,这个实际使用的字体太窄了,以致于很难看。

怎样在 X Window System 中显示一个给定名字的字体呢?用 xfd。可以这样:
  1. $ xfd -fn "-misc-simsun-medium-r-normal--17-120-100-100-p-90-gb18030.2000-0"
复制代码

这样逐渐调整到合适的值以后,就可以写到 .Xresources 中去了:
  1. Emacs.Fontset-0:-*-courier-medium-r-normal--20-*-*-*-*-*-xgp-20,\
  2.         chinese-gb2312:-misc-simsun-medium-r-normal--17-120-100-100-p-90-gb18030.2000-0
复制代码

现在,用 xrdb -merge .Xresources 来更新配置,再次启动 Emacs 就可以得到完美的效果了。
发表于 2005-10-31 10:08:29 | 显示全部楼层
请问如果我想让系统的locale为utf8怎么设置呢?就是Emacs中也要用UTF8,否则很多地方就和系统冲突,显示乱码了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-31 10:14:36 | 显示全部楼层
试试这个:
  1. (prefer-coding-system 'utf8)
复制代码
回复 支持 反对

使用道具 举报

发表于 2005-10-31 10:33:51 | 显示全部楼层
谢谢!我把.emacs中设置gb2312的行去掉就没有问题了,但是这样显示的中文字体很难看,有些大有些小,我想问的是这样如何调整字体,楼主你用的那个方法是针对gbk的是不是呀?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-31 10:45:17 | 显示全部楼层
你可以先读一下如何在 Emacs 中设置字体:
  1. C-h i memacs<Enter> mdefining<Space>f<Enter>
复制代码

就是 Emacs 手册中的 Defining Fontsets 一节。知道如何设置以后,就可以试着调整字体了。先将英文字体调好,然后可以调整中文字体。在能够正确显示中文以后,执行 M-x describe-fontset 可以得到当前正在使用的 Fontset,从中可以找到对应于每种编码的字体(如果你想看 utf 8 的字体,要确保 buffer 中有使用 utf 8 编码的文字)。那个字体可能不是你想要的,于是你可以用 xfd 这个 X 中显示字体的程序来查找和预览你喜欢的字体,并将它写到 .Xresources 中。大致就是这么一个过程吧,说得不是很详细,还请你摸索一下吧
回复 支持 反对

使用道具 举报

发表于 2005-10-31 13:00:45 | 显示全部楼层
好复制,弄了半天还是没有会。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-31 13:41:45 | 显示全部楼层
说说进行到哪里了吧
回复 支持 反对

使用道具 举报

发表于 2005-10-31 17:28:57 | 显示全部楼层
Post by herberteuler
试试这个:
  1. (prefer-coding-system 'utf8)
复制代码

这段代码能否加在.Xresources文件末尾?能用xrdb实现吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-31 17:48:19 | 显示全部楼层
这个是 Emacs 的 Lisp 函数啊,应该加在 .emacs 中。
回复 支持 反对

使用道具 举报

发表于 2005-10-31 18:05:57 | 显示全部楼层
Post by herberteuler
这个是 Emacs 的 Lisp 函数啊,应该加在 .emacs 中。

我用的红帽9。0是英文环境,想在emacs中能阅读和编写中文(这点做到了),可是在保存文件时要选择相应的coding设置,如果选择错误,查阅时就会显示乱码。如果加在.emacs中能永久使用吗?还有设置.Xresources配置时,能否保证永久使用吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表