当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [问题]Emacs 无法显示中文
帖子发表于 : 2007-03-11 17:19 
头像

注册: 2006-06-06 22:56
帖子: 80
送出感谢: 0 次
接收感谢: 0 次
今日开始学用Emacs, 版本为21.4。但是我在多语言设置里弄了半天,都没有办法在缓冲区中显示中文。例如:我在emacs中运行ls -l命令,缓冲区中的中文就显示成乱码。


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-03-11 20:14 
头像

注册: 2006-06-06 22:56
帖子: 80
送出感谢: 0 次
接收感谢: 0 次
我找到解决办法了,升级到Emacs23就可以了,新版本支持utf-8和GTK,除了快捷键外,鼠标和输入法操作与gedit基本上一样,还支持鼠标滚轮,实在很方便,下面是文章连接。
http://www.dirk.sh/diary/install_emacs_23_in_ubuntu_610


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-03-11 20:16 
头像

注册: 2006-06-06 22:56
帖子: 80
送出感谢: 0 次
接收感谢: 0 次
这是文章原文和评论(评论中也有不错的建议,一定要看)。
这里可能会看不清楚,大家还是到上面给的原文地址去看吧
=========================================================================================
emacs 目前正式发布的最新版本是 21.4,这个版本在 Ubuntu 下对中文以及中文输入法的支持多少有点问题,所以我们可以考虑从 emacs cvs 仓库中获取最新的 23.x (emacs-unicode-2) 版本,此版本很好的解决了中文显示以及 Gnome 下中文输入法的问题。以下操作基于 Ubuntu 6.10 环境:

1、从 cvs 仓库取出最新源代码:

Ubuntop:~$ set CVS_RSH="ssh"
## 如果你使用的是 Bash,使用 export CVS_RSH="ssh" 命令进行设置
Ubuntop:~$ cvs -z3 -d:ext:anoncvs@cvs.sv.gnu.org:/cvsroot/emacs co -r emacs-unicode-2 emacs

不要告诉我你的系统没有 cvs 哦,如果真的这么不幸,自己安装一下吧:

Ubuntop:~$ sudo apt-get install cvs texinfo

上述 cvs 操作会从远程 cvs 仓库取出 emacs 的最新版本,大约是 90M 左右,如果你的网速不太好,可能会很慢,也会让人很焦心,为了获得最新版本,慢慢等候吧。下载完成,我们进入到 emacs 目录进行编译和安装,不过需要预先安装一些相关的软件包(注意,如果你想要让 emacs 运行起来能像 GTK 图形应用,这些软件包是必须的):

Ubuntop:~$ sudo apt-get build-dep emacs21
Ubuntop:~$ sudo apt-get install xserver-xorg-dev
Ubuntop:~$ sudo apt-get install xorg-dev
Ubuntop:~$ sudo apt-get install libncurses5
Ubuntop:~$ sudo apt-get install libncurses5-dev

好了,我们终于要进入关键部分了:

Ubuntop:~/emacs$ ./configure --prefix=/usr --enable-font-backend --with-xft --with-freetype
Ubuntop:~/emacs$ make bootstrap
Ubuntop:~/emacs$ sudo make install

安装完成,输入 emacs 运行一个试试,看看是否有新的感觉。

想要让 emacs 显示中文,需要设置你的 ~/.Xresources 文件添加以下参数:

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

同样,为了方便使用 emacs,需要设置 ~/.emacs 文件:

(set-language-environment 'Chinese-GB)
(set-keyboard-coding-system 'euc-cn)
(set-clipboard-coding-system 'euc-cn)
(set-terminal-coding-system 'euc-cn)
(set-buffer-file-coding-system 'euc-cn)
(set-selection-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)

(global-set-key (kbd "C-SPC") 'nil)
(custom-set-variables
'(load-home-init-file t t))
(custom-set-faces)
(setq default-major-mode 'text-mode);一打开就起用 text 模式。
(global-font-lock-mode t);语法高亮
(auto-image-file-mode t);打开图片显示功能
(fset 'yes-or-no-p 'y-or-n-p);以 y/n代表 yes/no,可能你觉得不需要,呵呵。
(column-number-mode t);显示列号
(show-paren-mode t);显示括号匹配
(display-time-mode 1);显示时间,格式如下
(setq display-time-24hr-format t)
(setq display-time-day-and-date t)
(tool-bar-mode nil);去掉那个大大的工具栏
(scroll-bar-mode nil);去掉滚动条,因为可以使用鼠标滚轮了 ^_^
(mouse-avoidance-mode 'animate);光标靠近鼠标指针时,让鼠标指针自动让开
(transient-mark-mode t);
(setq x-select-enable-clipboard t);支持emacs和外部程序的粘贴
(setq frame-title-format "DIrk@%b");在标题栏提示你目前在什么位置
(setq default-fill-column 80);默认显示 80列就换行
(setq-default make-backup-files nil);不要生成临时文件

启动 emacs 后,输入 Ctrl-H 和 t 开始你的 emacs 之旅吧!

emacs 23 in Ubuntu 6.10

标签:ubuntu,emacs,23.x,中文输入

@ 2006-11-24 Friday@22:13:00 | 归于 Ubuntu Linux,开发工具 | 发表评论(7) »
7 条评论 »

1. Comments yzf [ 2006-12-13 Wednesday@21:28 ]

good! It’s useful.
2. Comments horsefaced [ 2007-01-14 Sunday@12:23 ]

实在是很有用,太谢谢了。不过有一个BUG
cvs -z3 -d:ext:anoncvs@cvs.sv.gnu.org:/cvsroot/emacs co -r emacs-unicode-2 emacs
这个CVS地址不能访问哦,实际要用
cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co -r emacs-unicode-2 emacs
3. Comments DIrk [ 2007-01-14 Sunday@14:01 ]

To horsefaced:

-d:ext:anoncvs 表示使用ssh方式连接,如果你连接不上,可能是你的ssh没有设置好,或者选择的镜像服务器的差别。
不过也许使用pserver方式更加通用。
4. Comments horsefaced [ 2007-01-14 Sunday@14:27 ]

哦,这样子,我照你的方法全部作下来了,现在emacs可以显示与操作中文了,但奇怪的是为什么emacs保存的中文在终端上看是乱码,反过来,终端上显示为中文的在emacs下也是乱码呢?
5. Comments DIrk [ 2007-01-14 Sunday@15:22 ]

以我的Ubuntu环境为例:
终端使用的是zh_CN.UTF-8编码,这样的话,如果使用vi等纯终端命令编辑中文,实际使用的是UTF-8,而emacs,如果按照我上面的配置,默认是GB2312编码。
我这里测试的结果:
1、在终端下使用vi创建一个中文内容文件,在emacs下,默认打开是乱码,你需要设置一下让emacs认为是utf-8才能正常显示;
2、使用emacs创建一个中文内容文件,在vi中显示乱码。

你可以使用bluefish正常打开gb2312和utf-8的文件。或者我推荐使用gvim,注意,是gvim,不是vi。在gvim中通过设置: set encoding=utf-8或者 set encoding=gb2312可以正常显示相应内容。

主要是终端设置的问题。
6. Comments horsefaced [ 2007-01-14 Sunday@15:27 ]

我再次试了一下,原来这段的问题
(set-language-environment ‘Chinese-GB)
(set-keyboard-coding-system ‘euc-cn)
(set-clipboard-coding-system ‘euc-cn)
(set-terminal-coding-system ‘euc-cn)
(set-buffer-file-coding-system ‘euc-cn)
(set-selection-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)
这里设置的euc-cn与系统的不一样,我系统设的是UTF8,所以保存下来的中文都是乱码了,只要把这段去除就好了。
7. Comments horsefaced [ 2007-01-14 Sunday@15:32 ]

呵呵,刚才搞这个没发现您的回复,其实把上面那些去除后,emacs会自动用utf8的。
我试了一下用gedit保存了一个GBK的文件,emacs也可以正确的打开了,看来只是终端不会自动认出编译格式来,emacs是没有问题的。


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

当前时区为 UTC + 8 小时


在线用户

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


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

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

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