LinuxSir.cn,穿越时空的Linuxsir!

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

终于彻底解决了emacs和scim冲突的问题

[复制链接]
发表于 2006-10-9 17:55:49 | 显示全部楼层 |阅读模式
我使用的emacs是22.0.50版本,一直以来都没有办法使用scim。看过无数的文章,什么改locale了,还是还emacs的版本了,都没有最终解决这个问题。总于在看了这个帖子之后,彻底解决了在utf-8的情况下emacs不能使用scim的问题。

适用情况:ubuntu6.06,zh_CN.utf-8下,emacs用scim作为输入法,C-SPC调用输入法。
很多朋友问说emacs用C-SPC调不出输入法,然后很多解决方法说要改locale,其实不用,主要是X下面中文字体字号和英文字体字号不匹配所致。
本人经过实践,以下方式可以解决问题,在emacs中调用scim输入法。
1、安装文泉驿字体(不安装也可以,文泉字体中文有小字体,系统默认的Fangsong ti只有16号,太大了)
安装过程可以参考文泉驿本身的文档INSTALL.zh.gb2312,下面做部分引用
引用:

== PCF/BDF格式字体的安装方法 ==

1.下载

您首先需要从下面的我们在sourceforge站点地址下载安装包,下载页面为:

http://sf.net/project/showfiles. ... p;package_id=156288

选择最新发布的版本和您所想要的格式,然后把您的安装包保存到一个临时的目录,比如
/tmp

2.解压缩

下载的包一般是用tar和gzip所压缩的,使用下面的命令来解压缩

gunzip wqy-bitmapfont*.tar.gz
tar xvf wqy-bitmapfont*.tar

或者

tar zxvf wqy-bitmapfont*.tar.gz

3.移动 (可选项)

所有的文件都将被解压缩到目录一个叫作wqy-bitmapfont的子目录,
您可以把把这个目录移动到您想安装字体的目录,一个比较好的建议是
/usr/share/fonts/Chinese/wqy-bitmapfont

为了移动目录,您需要使用"su"或者"sudo"来获取root权限。(如果您
没有root权限,请查看下面的第六小节)

4.设置字体路径

现在您需要告诉X窗口系统去找所安装的字体,假设您把字体安装到了这个目录
/usr/share/fonts/Chinese/wqy-bitmapfont/
您需要运行如下的命令:
cd /usr/share/fonts/Chinese/wqy-bitmapfont/
rm fonts*
mkfontdir .
cp fonts.dir fonts.scale
xset +fp /usr/share/fonts/Chinese/wqy-bitmapfont/

最后一个命令是把字体目录添加到X窗口字体路径列表。为了永久性的
添加这个目录,您需要把下面一行

"/usr/share/fonts/Chinese/wqy-bitmapfont,"

添加到/etc/X11/fs/config这个文件中,添加的位置是
"catalogue =/usr/lib/X11/fonts/misc/"这一行的下面。

如果您的系统中没有这个文件,您可能需要通过修改/etc/X11/xorg.conf
或者/etc/X11/XF86Config-4来添加这个目录

......
Section "Files"
......
FontPath "unix/:7100"
......
FontPath "/usr/share/fonts/Chinese/wqy-bitmapfont"
EndSection
......

到这里为止,您已经完成了对X核心字体的配置工作。大多数不太老版本
的Linux图形程序都支持fontconfig。为了让fontconfig使用这个
点阵字体,您需要执行

fc-cache -f -v

现在重新启动一下您的X窗口,您应该可以在字体选择框中看到文泉驿
点阵宋体的名字了。

5.测试

为了检测字体是否成功安装,可以使用下面的命令

/usr/X11R6/bin/xlsfonts | grep wenquanyi

您将会看到类似下面的输出:
-wenquanyi-wenquanyi bitmap song-bold-r-normal--0-0-75-75-p-0-iso10646-1
-wenquanyi-wenquanyi bitmap song-bold-r-normal--12-120-75-75-p-80-iso10646-1
-wenquanyi-wenquanyi bitmap song-bold-r-normal--13-130-75-75-p-80-iso10646-1
-wenquanyi-wenquanyi bitmap song-bold-r-normal--15-150-75-75-p-80-iso10646-1
-wenquanyi-wenquanyi bitmap song-bold-r-normal--16-160-75-75-p-80-iso10646-1
-wenquanyi-wenquanyi bitmap song-medium-r-normal--0-0-75-75-p-0-iso10646-1
-wenquanyi-wenquanyi bitmap song-medium-r-normal--12-120-75-75-p-80-iso10646-1
-wenquanyi-wenquanyi bitmap song-medium-r-normal--13-130-75-75-p-80-iso10646-1
-wenquanyi-wenquanyi bitmap song-medium-r-normal--15-150-75-75-p-80-iso10646-1
-wenquanyi-wenquanyi bitmap song-medium-r-normal--16-160-75-75-p-80-iso10646-1



2、配置~/.Xresources文件,让emacs用上刚才的字体。没有安装文泉的朋友可以把字体改成自己需要的字体。系统支持的字体可以用 xlsfonts命令查看。在下面的设置中,除了中文之外的字体都被设置成fixed,需要修改的朋友请自行修改,如果觉得英文字体不好可以增加一个 "ascii:"的项自己配置一个字体。
参考文章:
http://forum.ubuntu.org.cn/about18274.html
代码:

Emacs.Font:fontset-chinese
   Emacs.Fontset-0:-*-fixed-medium-r-*-*-16-*-*-*-c-*-fontset-chinese,\
   chinese-gb2312:-*-wenquanyi bitmap song-medium-*-normal--16-*-*-*-*-*-iso10646-1,\
   chinese-big5-1:-*-wenquanyi bitmap song-medium-*-normal--16-*-*-*-*-*-iso10646-1,\
   chinese-big5-2:-*-wenquanyi bitmap song-medium-*-normal--16-*-*-*-*-*-iso10646-1

写完后xrdb -load ~/.Xresources一下再运行emacs
发表于 2006-10-10 09:25:22 | 显示全部楼层
nnd,我试了一下,用apt安装的文泉驿字体,然后生成fonts.dir,修改.Xresources,果然又能输入中文了
谁能解释一下到底是怎么回事,怎么emacs的字体处理这么怪呢
回复 支持 反对

使用道具 举报

发表于 2006-10-10 09:28:28 | 显示全部楼层
lz的环境是什么?gnome么?
据说这个问题是因为gnome的bug,我使用其他桌面不需要设置就可以使用,为了emacs我已经放弃了gnome了,我按照了xubuntu的desktop,也挺好用的
回复 支持 反对

使用道具 举报

发表于 2006-10-10 09:30:35 | 显示全部楼层
据说emacs与Gnome有冲突,我用xfce4,从来没有遇到不能输入中文的事情
回复 支持 反对

使用道具 举报

发表于 2006-10-10 09:35:11 | 显示全部楼层
赫赫 就是gnome的问题,与其一个劲的找在gnome下的解决办法不如换个桌面
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-11 17:12:45 | 显示全部楼层
我用的是ubuntu,gnome的环境。不是gnome的bug,虽然emacs是用了gtk的的界面,但是字体的设置都是通过xwindows来完成的。这个问题,应该是emacs只能使用16的等高中文字体。这个解决的方法也是告诉emacs,有这个等高的字体可以使用而已。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-11 17:14:03 | 显示全部楼层
如果你通过配置还是不行的话,尝试使用xset fp rehash来刷新xwindows的字体。这个只是临时的,所以不要担心。
回复 支持 反对

使用道具 举报

发表于 2006-10-11 20:29:24 | 显示全部楼层
呵呵,这个方法不能“完全”解决emacs和gnome-settings-daemon冲突问题
第一,你可以把字号改成15试试
第二,以上方法不适用于emacs23
回复 支持 反对

使用道具 举报

发表于 2006-10-26 20:03:19 | 显示全部楼层
郁闷,本来我的UBUNTU 6.06 +gnome+emacs 22.0.50已经配置好了,字体很漂亮,SCIM也能用。但今天一用emacs发现中文又不能显示,scim也调不出来了。。  NND。。。
回复 支持 反对

使用道具 举报

发表于 2006-11-16 10:42:20 | 显示全部楼层
Post by PiPiDou
呵呵,这个方法不能“完全”解决emacs和gnome-settings-daemon冲突问题
第二,以上方法不适用于emacs23


真的吗,太郁闷了

我编译了最新的emacs 23 CVS(据说解决了和gnome关于输入法的冲突),在全新安装的kubuntu6.10上不用设置就可使用scim,但在我的本本上(kubuntu6.10,从6.04升上来的,保证dist-grade到最新)却不行:mad:
回复 支持 反对

使用道具 举报

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

本版积分规则

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