当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 9 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [原创]在ubuntu dapper 6.06 Bate2上安装emacs-snapshot(解决Gnome下中文输入)
帖子发表于 : 2006-05-06 19:28 
头像

注册: 2005-09-29 11:13
帖子: 646
地址: Boston, MA
送出感谢: 0 次
接收感谢: 0 次
在ubuntu dapper 6.06 Bate2上安装emacs-snapshot

1)系统
语言环境:zh_CN.UTF8(中文默认)

系统直接由ubuntu官方网站下载的安装文件刻盘后安。
安装模式为server/expert -> xserver-xorg/x-window-system -> gnome-core。
软件库为http://us.arhive.ubuntu.com/ubuntu/ dapper。

拷贝windows的tahoma、simsusn、simhei和Microsoft Yahei四个字体,用来美化中文。(方法略)

2)安装组件
(全部用synaptic,没有自己编译)
没有安装mule-ucs。
主要是emacs-snapshot-bin-common 1:20060114-1。
其他包括emacs-goodies以及写C程序、Python和PHP需要的el文件。

3)中文问题
安装完成后无法正常显示中文,fcitx无法输入。这是因为没有指定emacs使用何种中文字体。
xlsfonts | grep gb命令查询,发现系统自带核心中文字体为:
代码:
[color=darkred]-isas-fangsong ti-medium-r-normal--0-0-72-72-c-0-gb2312.1980-0
-isas-fangsong ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0
-isas-song ti-medium-r-normal--0-0-72-72-c-0-gb2312.1980-0
-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0
-isas-song ti-medium-r-normal--24-240-72-72-c-240-gb2312.1980-0
hanzigb16fs
hanzigb16st
hanzigb24st[/color]


在家目录下新建文件.Xdefaults,添加如下内容:
代码:
Emacs.Font: fontset-16
Emacs.Fontset-0:-*-*-medium-r-*-*-16-*-*-*-*-*-fontset-16,\
chinese-gb2312:-isas-fangsong ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0,\
mule-unicode-0100-24ff:-misc-fixed-medium-r-normal--16-*-*-*-*-*-iso10646-1,\
chinese-cns11643-5:-isas-fangsong ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0,\
chinese-cns11643-6:-isas-fangsong ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0,\
chinese-cns11643-7:-isas-fangsong ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0


保存后,在终端输入:xrdb -load ~/.Xdefaults,或者重启X。
在家目录下新建文件.emacs,加入语句:(global-set-key (kbd "C-SPC") 'nil)
emacs可以正常显示GBK编码中文,fcitx可以输入gb2312编码中文。

另:不知道为什么fcitx无法输入GBK,虽然输入法列表中可以看到GBK编码中文,但输入后emacs显示为方框。只好卸载fcitx,安装scim。

4)更换字体
这一步不是必须的,但是fangsong ti模样是在不敢恭维,所以换成simsun18030。
拷贝simsun18030.ttc到家目录下msfonts目录(新建目录,主要不想调整/etc/fonts/fonts.conf文件)。
终端中cd到此目录,使用mkfontscale命令:
代码:
$cd /home/myname/msfonts
$mkfontscale


生成fonts.scale文件。用gvim打开,内容为:
代码:
11
SimSun18030.ttc -misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-ascii-0
SimSun18030.ttc -misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-cns11643-1
SimSun18030.ttc -misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-cns11643-2
SimSun18030.ttc -misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-cns11643-3
SimSun18030.ttc -misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-gb18030.2000-0
SimSun18030.ttc -misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-gb2312.1980-0
SimSun18030.ttc -misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-iso10646-1
SimSun18030.ttc -misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-iso8859-1
SimSun18030.ttc -misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-jisx0208.1983-0
SimSun18030.ttc -misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-jisx0208.1990-0
SimSun18030.ttc -misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-koi8-r


没有gbk,添加一行,改成:
代码:
[color=red]12[/color]
SimSun18030.ttc -misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-ascii-0
SimSun18030.ttc -misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-cns11643-1
SimSun18030.ttc -misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-cns11643-2
SimSun18030.ttc -misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-cns11643-3
SimSun18030.ttc -misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-gb18030.2000-0
SimSun18030.ttc -misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-gb2312.1980-0
[color=red]SimSun18030.ttc -misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-gbk-0[/color]
SimSun18030.ttc -misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-iso10646-1
SimSun18030.ttc -misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-iso8859-1
SimSun18030.ttc -misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-jisx0208.1983-0
SimSun18030.ttc -misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-jisx0208.1990-0
SimSun18030.ttc -misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-koi8-r


保存文件,相同目录下把它再拷贝为一个新文件,重命名为fonts.dir

把msfonts绝对路径添加到/etc/X11/xorg.conf中(找到 Section "Files"):

代码:
Section "Files"
......
FontPath "/home/myname/msfonts"
......
EndSection


重新启动X,在.Xdefaults中把字体改为:
代码:
Emacs.Font: fontset-16
Emacs.Fontset-0:-*-*-medium-r-*-*-16-*-*-*-*-*-fontset-16,\
chinese-gb2312:-misc-simsun 18030-medium-r-normal--16-*-*-*-*-*-gbk-0,\
mule-unicode-0100-24ff:-misc-fixed-medium-r-normal--16-*-*-*-*-*-iso10646-1,\
korean-ksc5601:-*-medium-r-normal-*-16-*-ksc5601*-*,
chinese-cns11643-5:-misc-simsun 18030-medium-r-normal--16-*-*-*-*-*-gbk-0,\
chinese-cns11643-6:-misc-simsun 18030-medium-r-normal--16-*-*-*-*-*-gbk-0,\
chinese-cns11643-7:-misc-simsun 18030-medium-r-normal--16-*-*-*-*-*-gbk-0


保存后,在终端输入:xrdb -load ~/.Xdefaults,或者重启X。

emacs已经可以正常显示和输入GBK编码的中文。.emacs文件中无须设置任何编码方案。

另:很多帖子反映,在gnome中,emacs可以显示中文,但是没办法输入,表现是Ctrl-Space被占用,即使在.emacs文件中加入(global-set-key (kbd "C-SPC") 'nil)命令依旧显示“C-SPC is undefined”,无论是fcitx还是scim。但其他窗口管理器(比如wmaker)或者桌面系统(比如KDE或者Xfce4)正常。这并不完全是gnome的问题。如果.Xdefaults字体设置不正确,或者中英文字号不同,那么Ctrl-Space肯定失灵。

我以前在ubuntu 5.04和5.10中使用的都是上述设置,没有任何问题。此方法不适用于emacs21,因为它不支持utf8。


附件:
文件注释: GBK支持
Screenshot3.png
Screenshot3.png [ 207.31 KiB | 被浏览 1443 次 ]

文件注释: 中文输入
Screenshot2.png
Screenshot2.png [ 228.15 KiB | 被浏览 1413 次 ]

文件注释: 安装选项
Screenshot1.png
Screenshot1.png [ 97.19 KiB | 被浏览 1396 次 ]

页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2006-05-07 22:17 
头像

注册: 2005-06-30 15:46
帖子: 2245
地址: 成都
送出感谢: 0 次
接收感谢: 0 次
不错。 :P


_________________
Humanity to others // 己所不欲,勿施与人
Laptop: ThinkPad X220 --- Win7 Home / Ubuntu 12.04
Desktop: Win7/Ubuntu 12.04
Server: Ubuntu12.04


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2006-05-08 8:42 
头像

注册: 2005-09-29 11:13
帖子: 646
地址: Boston, MA
送出感谢: 0 次
接收感谢: 0 次
谢谢。

写这么多内容,其实关键只在.Xdefaults文件中字体的设置。其他的比如.emacs中可以完全不添加任何东西。

这里的字体设置一定要是xlsfonts | grep中搜索到的自己系统中存在的字体,并且即使是存在这种字体,也必须设置这种字体正确的字号。如果根本就没有这种字体,或者说核心字体中没有列出我们要求emacs使用的字体,更或者你设置了一个不正确的字号,那么中文显示输入肯定有问题。

有的帖子和网上很多文章有关于要求设置.emacs文件的要求,比如要求添加语言环境为:
代码:
[color=darkred](set-language-environment 'Chinese-GB)
(set-keyboard-coding-system 'euc-cn)
(set-clipboard-coding-system 'euc-cn)
(set-clipboard-coding-system 'cn-gb-2312)
(set-terminal-coding-system 'euc-cn)
(set-buffer-file-coding-system 'euc-cn)
(set-selection-coding-system 'euc-cn)
;(set-selection-coding-system 'chinese-iso-8bit-with-esc)
(set-selection-coding-system 'cn-gb-2312)
(set-default-coding-systems 'euc-cn)
(setq locale-coding-system 'euc-cn)
(modify-coding-system-alist 'process "*" 'euc-cn)
(setq default-process-coding-system
'(euc-cn . euc-cn))
(setq-default pathname-coding-system 'euc-cn)[/color]


或者设置为UTF8,比如:
代码:
[color=darkred](setq current-language-environment "UTF-8")
(setq default-input-method "chinese-py")
(setq locale-coding-system 'utf-8')
(set-terminal-coding-system 'utf-')
(set-keyboard-coding-system 'utf-8')
(set-selection-coding-system 'utf-8')
(prefer-coding-system 'utf-8')[/color]


这是因为安装的是emacs21,或者是他们使用的是不同的Linux发行版(比如红帽子或者Debian等等),也有可能是语言环境不同,比如/etc/environment中设置了英文和GBK混合,或者默认的是英文、繁体中文等等。不能说这些设置有什么问题,但是如果我们使用的发行版是ubuntu,并且默认的语言环境是zh_CN.UTF8,那么就我个人的安装经验而言,至少在我的系统上,按照上述方法安装在gnome下是不会有任何问题的。

而且,如果在我的系统中,如果.emacs中完全可以不添加(global-set-key (kbd "C-SPC") 'nil)这条语句,这并不影响Ctrl-Space的调用。

emacs有很多设置方法,比如字体设置就可以不用.Xdefaults文件,可以在.emacs中设置,比如:
代码:
(create-fontset-from-fontset-spec
(concat
"-*-courier-medium-r-normal-*-14-*-*-*-*-*-fontset-courier,"
"chinese-gb2312:-*-simsun-medium-r-*-*-14-*-*-*-c-*-gb2312*-*,"
"mule-unicode-0100-24ff:-*-simsun-medium-r-*-*-14-*-*-*-c-*-iso10646*-*,"
"korean-ksc5601:-*-*-medium-r-*-*-14-*-*-*-*-*-ksc5601*-*,"
"chinese-cns11643-5:-*-simsun-medium-r-*-*-14-*-*-*-c-*-gbk*-*,"
"chinese-cns11643-6:-*-simsun-medium-r-*-*-14-*-*-*-c-*-gbk*-*,"
"chinese-cns11643-7:-*-simsun-medium-r-*-*-14-*-*-*-c-*-gbk*-*,"
"sjis:-*-medium-r-normal--14-*-jisx0208*-*"))

(set-default-font "fontset-courier")
(setq default-frame-alist
(append
'((font . "fontset-courier")) default-frame-alist))


但这种方法会延迟emacs的启动,在emacs22中没有作用。至于windows版本的emacs,则设置方式完全是另外一回事了。

emacs的问题很多,这涉及到核心字体的问题、Linux的语言环境以及lisp语言等等,不是花一两天学习或者copy&paste一些现成的代码就可以弄清楚的,等我们可以完全驾驭它的时候,估计头发都白了。


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2006-05-08 9:23 
头像

注册: 2005-06-30 15:46
帖子: 2245
地址: 成都
送出感谢: 0 次
接收感谢: 0 次
........
我现在基本操作还没完全掌握。。。


_________________
Humanity to others // 己所不欲,勿施与人
Laptop: ThinkPad X220 --- Win7 Home / Ubuntu 12.04
Desktop: Win7/Ubuntu 12.04
Server: Ubuntu12.04


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2006-07-19 12:39 

注册: 2006-07-18 0:44
帖子: 13
送出感谢: 0 次
接收感谢: 0 次
按照楼主的方法安装simsun字体(从windows中copy过来后改名为simsun18030.ttc),然后xlsfonts |grep gb得到:

-adobe-itc zapf dingbats-medium-r-normal--0-0-0-0-p-0-adobe-fontspecific
-adobe-zapf dingbats-medium-r-normal--0-0-0-0-p-0-adobe-fontspecific
-adobe-zapfdingbats-medium-r-normal--0-0-0-0-p-0-adobe-fontspecific
-isas-fangsong ti-medium-r-normal--0-0-72-72-c-0-gb2312.1980-0
-isas-fangsong ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0
-isas-song ti-medium-r-normal--0-0-72-72-c-0-gb2312.1980-0
-isas-song ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0
-isas-song ti-medium-r-normal--24-240-72-72-c-240-gb2312.1980-0
-itc-itc zapf dingbats-medium-r-normal--0-0-0-0-p-0-adobe-fontspecific
-misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-gbk-0
-misc-simsun-medium-r-normal--0-0-0-0-p-0-gb18030.2000-0
-misc-simsun-medium-r-normal--0-0-0-0-p-0-gb2312.1980-0
-urw-dingbats-medium-r-normal--0-0-0-0-p-0-adobe-fontspecific
-urw-dingbats-regular-r-normal--0-0-0-0-p-0-adobe-fontspecific
hanzigb16fs
hanzigb16st
hanzigb24st

然后在.Xdefaults中设置

Emacs.Font: fontset-16
Emacs.Fontset-0:-*-*-medium-r-*-*-16-*-*-*-*-*-fontset-16,\
chinese-gb2312:-misc-simsun 18030-medium-r-normal--16-*-*-*-*-*-gbk-0,\
mule-unicode-0100-24ff:-misc-fixed-medium-r-normal--16-*-*-*-*-*-iso10646-1,\
korean-ksc5601:-*-medium-r-normal-*-16-*-ksc5601*-*,
chinese-cns11643-5:-misc-simsun 18030-medium-r-normal--16-*-*-*-*-*-gbk-0,\
chinese-cns11643-6:-misc-simsun 18030-medium-r-normal--16-*-*-*-*-*-gbk-0,\
chinese-cns11643-7:-misc-simsun 18030-medium-r-normal--16-*-*-*-*-*-gbk-0

再打开emacs23(用软件库中的deb包安装的),还是不能使用输入法,按control space还是显示undefined。
到底是什么原因呢?
会不会字体没正确安装,因为下面太多 “0” 了:
-misc-simsun 18030-medium-r-normal--0-0-0-0-m-0-gbk-0
-misc-simsun-medium-r-normal--0-0-0-0-p-0-gb18030.2000-0
-misc-simsun-medium-r-normal--0-0-0-0-p-0-gb2312.1980-0
是字号的问题?怎么修改字号呢?

谢谢


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2006-07-21 6:39 
头像

注册: 2005-09-29 11:13
帖子: 646
地址: Boston, MA
送出感谢: 0 次
接收感谢: 0 次
emacs23的配置方法和其他版本的不同,你可以查询google看看。


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2006-09-09 0:39 

注册: 2006-05-04 15:52
帖子: 35
送出感谢: 0 次
接收感谢: 0 次
字体太大了。。。能不能把16 改成 14呢???????应该怎么做?


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2006-11-04 19:41 

注册: 2006-09-12 1:25
帖子: 62
送出感谢: 0 次
接收感谢: 0 次
这么好的贴为什么不置顶呢?我折腾了一个星期的emacs中文化问题终于搞定了
赞一下楼主,并郑重请求版主将此帖置顶
:em38


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2006-11-07 15:49 
头像

注册: 2005-06-30 15:46
帖子: 2245
地址: 成都
送出感谢: 0 次
接收感谢: 0 次
if 写道:
这么好的贴为什么不置顶呢?我折腾了一个星期的emacs中文化问题终于搞定了
赞一下楼主,并郑重请求版主将此帖置顶
:em38


同意,置顶,并对标题有所修改。


_________________
Humanity to others // 己所不欲,勿施与人
Laptop: ThinkPad X220 --- Win7 Home / Ubuntu 12.04
Desktop: Win7/Ubuntu 12.04
Server: Ubuntu12.04


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 9 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译