当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 29 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : [原创]Emacs 常见问题及其解决方法。
帖子发表于 : 2006-04-22 13:45 

注册: 2005-12-20 21:26
帖子: 122
地址: UESTC
送出感谢: 0 次
接收感谢: 0 次
在很多论坛里面看到很多兄弟在开始试用emacs的时候遇到很多的困难,很多问
题我也不知道看到过好次了,所以现在想把我使用过程中遇到的问题和解决方法
写出来和大家分享一下。

1. 第一个问题最多的可能就是在emacs中显示中文的问题了(也可能是中文输入
法在emacs中的问题)反正我们一个一个的来看嘛。

- 如果你的是Emacs21:

首先确定你安装了mule-ucs这个包,然后你需要加入下面的代码:

(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)

- 如果你的是Emacs22和23就不需要了,另外只是Emacs22同样也需要安装
mule-ucs,Emacs23就不需要了。

2. Emacs中使用fcitx或者scim。

首先安装这两个输入法和配置方面的我就不说了,如果还是不会的可以去我的
blog看看:http://www.cduhacker.com/duoxing/?action=show&id=4

另外还有一个地方比较重要的就是/etc/environment的设置,虽然Ubuntu中文帮
助文档里面有,但是局限性太强了,不是那么自由,比如在纯英文环境下就无法
使用fcitx,并且最初的时候我就是用的那个出了很多莫名其妙的问题,所以就
自己写了一个比较通用的,在任何的locale下面都可以很正常的显示和使用任何
输入法,这里仅供参考。(测试环境:Ubuntu 5.10/6.06 , Debian 3.1
stable/testing,)

duoxing@smartfish:~$ cat /etc/environment
LANGUAGE="en_CN:en_US:en_GB:en"

LANG=en_US

LC_CTYPE=zh_CN.GBK
duoxing@smartfish:~$

通过上面的设置后一般都没有什么问题了,当然也有很多朋友遇到的问题就是使
用默认的调出输入法的组合键 ctrl+space 显示 mark 的问题,这个也好办,我
们禁止这个组合键在emacs中的使用就是了:(global-set-key (kbd "C-SPC")
'nil) 这样设置后应该就没有问题了。

3. 当然Emacs里面能正常显示中文字体了也不一定显示的字体就很让我们满意,
比如在Ubuntu里面,Emacs中的字体默认就是楷体的,但是这个字体在emacs里面
显示出来真的是太难看了,于是我决定使用simsun的字体,当然,你也可以选择
使用其它的字体,只是在相关地方设置就是了,这里我给出我的字体设置,如果
你的系统是debian,那就恭喜你了,默认的字体就很好看了。

duoxing@smartfish:~$cat .Xdefaults
Emacs.Font: fontset-song
Emacs.FontsetList: song kai hei lucida
Emacs.Fontset-0:-adobe-courier-medium-r-*-*-14-*-*-*-*-*-fontset-song,\
chinese-gb2312:-*-simsun-medium-r-*--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:-*-simsun-medium-r-*--16-*-*-*-*-*-gbk-0,\
chinese-cns11643-6:-*-simsun-medium-r-*--16-*-*-*-*-*-gbk-0,\
chinese-cns11643-7:-*-simsun-medium-r-*--16-*-*-*-*-*-gbk-0

Emacs.Fontset-1:-adobe-courier-medium-r-*-*-14-*-*-*-*-*-fontset-kai,\
chinese-gb2312:-*-simkai-medium-r-*--16-*-*-*-*-*-gbk-0,\
mule-unicode-0100-24ff:-misc-fixed-medium-r-normal--16-*-*-*-*-*-iso10646-1

Emacs.Fontset-2:-adobe-courier-medium-r-*-*-14-*-*-*-*-*-fontset-hei,\
chinese-gb2312:-*-simhei-medium-r-*--16-*-*-*-*-*-gbk-0,\
mule-unicode-0100-24ff:-misc-fixed-medium-r-normal--16-*-*-*-*-*-iso10646-1

Emacs.Fontset-3:-adobe-courier-medium-r-*-*-14-*-*-*-*-*-fontset-lucida,\
ascii:-b&h-lucidatypewriter-medium-r-*-*-12-*-*-*-*-*-iso8859-1,\
chinese-gb2312:-*-simsun-medium-r-*--16-*-*-*-*-*-gbk-0,\
mule-unicode-0100-24ff:-misc-fixed-medium-r-normal--16-*-*-*-*-*-iso10646-1

分开定义的中英文字体,我比较喜欢这样的等宽字体,需要注意的是如果你必须
要安装了simsun的字体(使用:xlsfonts |grep simsun 可以查看你是否安装了
这个字体)才可以正常的显示。可以去下面的链接看看效
果图。http://www.cduhacker.com/duoxing/?action=show&id=89

4. mew的设置。

这个部分我的是用的一个邮箱的,设置也偏向于实用就是了,所以设置的很简洁


(autoload 'mew "mew" nil t)
(autoload 'mew-send "mew" nil t)
(setq mew-use-cached-passwd t)
(setq mew-pop-size 0)
(setq mew-pop-delete nil)
(setq mew-config-alist
'(("default"
("name" . "多行")
("user" . "laiwei2010")
("mail-domain" . "163.com")
("pop-server" . "pop3.163.com")
("pop-port" . "110")
("pop-user" . "laiwei2010")
("pop-auth" . pass)
("smtp-server" . "smtp.163.com")
("smtp-port" . "25")
("smtp-user" . "laiwei2010")
("smtp-auth-list" . ("CRAM-MD5" "LOGIN" "PLAIN")))))

根据我的模板,填写你的信息就可以了。

5. 设置gnus阅读新闻组。很多地方可能不是对没个人都实用,根据自己的情况
自己去改吧。

;用户资料设定
;(setq user-full-name "duoxing") ;;外发邮件采用这个名字
;(setq user-mail-address "duoxing@126.com");;外发的邮件采用这个地址
;设置默认的新闻服务器
;(setq gnus-select-method '(nntp "localhost"))
;(setq gnus-select-method '(nntp "news.cn99.com"))
(setq gnus-select-method '(nntp "news.cn99.com")
gnus-secondary-select-methods
'((nnml "")
;; (nntp "news.individual.net")
;;(nntp "news.gmane.org")
(nntp "news.newsfan.net")
(nntp "news.yaako.com")))



;;设置显示格式
;(setq gnus-group-line-format "%m%M%5N/%-5R %10G: %D\n"
; gnus-topic-line-format "%i%n %A (%G) %v\n"
; gnus-summary-line-format ":%U%R%B%s%-60=%-20,20f|%4L |\n")

(setq gnus-group-line-format "%m%M%L%5N/%-5R %25G: %D\n"
gnus-topic-line-format "%i%n %A (%G) %v\n"
gnus-summary-line-format ":%U%R%B%s%-60=%-20,20f|%4L |\n")

;;设置Article buffer顶部显示的头信息
(setq gnus-visible-headers
"^\\(From:\\|Subject:\\|Date:\\|Followup-To:\\|X-Newsreader:\\|User-Agent:\\|X-Mailer:\\)")

(if window-system
(setq gnus-sum-thread-tree-root ">>"
gnus-sum-thread-tree-single-indent " >"
gnus-sum-thread-tree-leaf-with-other "+-> "
gnus-sum-thread-tree-indent " "
gnus-sum-thread-tree-vertical "|"
gnus-sum-thread-tree-single-leaf "`-> "
gnus-sum-thread-tree-false-root "~>"))



;;改变阅读新闻时窗口的布局"1.0"表示占满剩余空间
;上下各一个窗口
(gnus-add-configuration '(article (vertical 1.0 (summary .35 point) (article 1.0))))
;(gnus-add-configuration '(article (horizontal 1.0 (summary .30 point) (article 1.0))))
;(gnus-add-configuration
; '(article
; (horizontal 1.0
; (vertical 25
; (group 1.0))
; (vertical 1.0
; (summary 0.25 point)
; (article 1.0)))))
;(gnus-add-configuration
; '(summary
; (horizontal 1.0
; (vertical 25
; (group 1.0))
; (vertical 1.0
; (summary 1.0 point)))))



;;如果开启了主题视图,只看未读邮件是令人讨厌的
(setq gnus-fetch-old-headers 'some)
;;下载所有文章
(setq gnus-fetch-old-headers t)
;;自动换行功能
(add-hook 'message-mode-hook
(lambda ()
(setq fill-column 72);;这里的72是等一行到了72个字符后开始换行
(turn-on-auto-fill)))
(setq message-cite-function 'message-cite-original-without-signature)


;;设置浏览器显示HTML邮件(w3,w3m,links,lynx,html2text)
(setq mm-text-html-renderer 'w3m)

;;排序
(setq gnus-thread-sort-functions
'(
(not gnus-thread-sort-by-date)
(not gnus-thread-sort-by-number)
))


;;同步所有组并发布草稿中的邮件和文章

;(add-hook 'gnus-group-mode-hook
; (lambda ()
; (define-key gnus-agent-group-mode-map "o" 'my-gnus-get-new-message)))
;(defun my-gnus-get-new-message ()
; (interactive)
; (gnus-agent-toggle-plugged t)
; (gnus-group-get-new-news);; check news, get mail
; (gnus-agent-fetch-session);; fetch news
; (gnus-group-send-queue);; send mail/news
; (gnus-agent-toggle-plugged nil)
; (message "gnus-agent: mail/news send/fetch Finished. "))

;;自动同步

(setq gnus-asynchronous t)
;; Custome cite-funcition
(setq message-cite-function 'message-cite-original-without-signature)

(setq gnus-treat-display-smileys t)
(setq gnus-summary-display-arrow nil)
(setq gnus-confirm-mail-reply-to-news t)
(setq gnus-agent-go-online t)
(setq gnus-interactive-exit nil)
(setq gnus-read-active-file nil)
(setq gnus-read-newsrc-file nil)
(setq gnus-save-newsrc-file nil)
(setq gnus-save-killed-list nil)

(setq gnus-agent-short-article 500)
(setq gnus-agent-long-article 1000)
;;打开gnus的cache功能,*保存帖子 Meta-*从缓存中删除
;;查看缓存中的帖子,在summary buffer中 按 Y c
(setq gnus-use-cache 'passive)

;; 新闻组分组
;; 有时订阅了很多新闻组,堆在一起不好管理。这个功能可以创建目录来分层管理这些新闻组。
;; group topic
(add-hook 'gnus-group-mode-hook 'gnus-topic-mode)
;; 现在可以在group buffer里面M-x gnus-topic-create-topic来创建一个"topic"
;; 然后将某个新闻组或者其他topic给C-k掉,再移动到你创建的topic下C-y,就可以
;; 将它们收到这个topic下
;; topic的好处除了分层之外,还有就是可以将不常看的topic折叠起来,不要显示。
;; 就像下面这样
;;
;; [ Gnus -- 0 ]
;; [ MAIL -- 3 ]...
;; [ NEWS -- 0 ]
;; [ emacs -- 0 ]
;; *: nntp+binghe.6600.org: gnu.emacs.help
;; *: nntp+binghe.6600.org:gnu.emacs.gnus
;; [人文与社会 -- 0]
;; [语言 -- 0
;; *: nntp+news.newsfan.net:教育.就业.外语.日语
;; *: nntp+news.newsfan.net:教育.就业.外语.英语
;; [ misc -- 0 ]...
;;
;; 参考gnus info -> Group Buffer -> Group Topics


;;标识自己的文章

(defun message-make-message-id()
(concat "<"(message-unique-id)"@meatball.nudt.edu.cn>"))
(setq gnus-score-interactive-default-score 400)

(require 'gnus-sum)
(defface dz-gnus-own-posting-face nil
"Use this face to display own postings in Summary Buffer")
(copy-face 'gnus-summary-high-unread-face 'dz-gnus-own-posting-face)
(set-face-foreground 'dz-gnus-own-posting-face "yellow")

(defface dz-gnus-direct-fup-face nil
"Use this face to display direct fups to my postings.")
(copy-face 'gnus-summary-high-unread-face 'dz-gnus-direct-fup-face)
(set-face-foreground 'dz-gnus-direct-fup-face "yellow")

(defface dz-gnus-indirect-fup-face nil
"Use this face to display indirect fups to my postings")
(copy-face 'gnus-summary-high-unread-face 'dz-gnus-indirect-fup-face)
(set-face-foreground 'dz-gnus-indirect-fup-face "yellow")

(add-to-list 'gnus-summary-highlight
'((and (> score 8500) (eq mark gnus-unread-mark)) . dz-gnus-own-posting-face))

(add-to-list 'gnus-summary-highlight
'((and (>= 8500 score) (>= score 7500) (eq mark gnus-unread-mark)) . dz-gnus-direct-fup-face))

(add-to-list 'gnus-summary-highlight
'((and (>= 7499 score) (>= score 6500) (eq mark gnus-unread-mark)) . dz-gnus-indirect-fup-face))



;设置邮件服务器
;(setq mail-sources
; '((pop :server "pop.163.com"
; :user "mendouer"
; :port "pop3"
; :password ".")))
(setq pop3-leave-mail-on-server t)
;;设置多个pop邮箱
; (setq mail-sources '(
; (pop :server "pop.163.com" :user "william_xuuu" :password "dolemi")
; (pop :server "pop3.sohu.com" :user "william_xuuu" :password "dolemi")))


;邮件存放方式
(setq gnus-secondary-select-methods '((nnfolder "")))
(setq user-full-name "duoxing") ;;外发的邮件采用这个名字
(setq user-mail-address "duoxing@126.com") ;;外发的邮件采用这个地址
(setq smtpmail-auth-credentials
'(("smtp.163.com" ;; SMTP服务器
25
"mendouer"
"")))
(setq smtpmail-default-smtp-server "smtp.163.com")
(setq smtpmail-smtp-server "smtp.163.com")
(setq message-send-mail-function 'smtpmail-send-it)
;中文设定
(setq gnus-default-charset 'chinese-iso-8bit
gnus-group-name-charset-group-alist '((".*" . chinese-iso-8bit))
gnus-summary-show-article-charset-alist
'((1 . chinese-iso-8bit)
(2 . gbk)
(3 . big5)
(4 . utf-8))
gnus-newsgroup-ignored-charsets
'(unknown-8bit x-unknown iso-8859-1))
;有些用web方式发出的邮件里有html,加入下面的设置,只看其中的plain text部分
(eval-after-load "mm-decode"
'(progn
(add-to-list 'mm-discouraged-alternatives "text/html")
(add-to-list 'mm-discouraged-alternatives "text/richtext")))

;现在我们可以选择几个自己喜欢的新闻组,作为默认的新闻组
(setq gnus-default-subscribed-newsgroups
'("gnu.emacs.help"
"cn.comp.os.linux"
"comp.os.linux.announce"
"comp.os.linux.development.apps"
"comp.os.linux.development.system"
"comp.os.linux.misc"
"comp.os.linux.answers"))


;邮件分类
(setq nnmail-split-methods
'(("mail.163.com" "^From:.*163.com")
("mail.misc" "")))
;保存自己发送的邮件
(setq gnus-message-archive-group
'((if (message-news-p)
"nnfolder:mail.sent.news"
"nnfolder:mail.sent.mail")))
;;~/.newsrc gnus保留这个完全是为了其他的newreader。如果不适用,完全可以删除。
;;并且设置
(setq gnus-read-newsrc-file nil
gnus-save-newsrc-file nil)


暂时这次就整理到这里吧,其它还有很多,比如emms的设置,程序设计语言
模式的高亮显示的问题,以后在慢慢整理出来嘛。


附件:
文件注释: Emacs显示
Screenshot.png
Screenshot.png [ 81.35 KiB | 被浏览 25318 次 ]

页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2006-04-22 14:49 
头像

注册: 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


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2006-04-23 9:28 

注册: 2005-12-25 20:44
帖子: 116
送出感谢: 0 次
接收感谢: 0 次
好文啊好文


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2006-04-29 9:17 

注册: 2006-04-13 16:17
帖子: 15
送出感谢: 0 次
接收感谢: 0 次
高手啊
看了很有收获
多谢


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2006-05-13 15:37 

注册: 2005-12-20 21:26
帖子: 122
地址: UESTC
送出感谢: 0 次
接收感谢: 0 次
更多的配置文件和相关信息可以在: http://www.cduhacker.com/duoxing/?action=show&id=2 上面看到,希望对大家有用。


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2006-05-17 21:56 

注册: 2005-12-25 20:44
帖子: 116
送出感谢: 0 次
接收感谢: 0 次
simsun字体怎么装啊??

从win拷过来??


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2006-05-18 15:46 

注册: 2005-12-20 21:26
帖子: 122
地址: UESTC
送出感谢: 0 次
接收感谢: 0 次
安装simsun至少有两种方法,一种就是直接从windows下面拷贝,但是这样的安装方式后字体不一定能在emacs里面使用,需要设置,但是也比较麻烦,因为emacs用的是核心字体,还有一个方法更简单的就是安装simsun的一个deb包,安装好了用xlsfonts |grep simsun一般就能找到了 ,然后就可以在emacs里面使用了,拷贝上面我发的那段代码就行了,效果图上面也能看到。


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2006-05-19 20:59 

注册: 2005-12-25 20:44
帖子: 116
送出感谢: 0 次
接收感谢: 0 次

谢谢楼上的快速回复

哪有simsun的deb包啊??

源里查simsun没结果啊

ps,那效果图可真好看啊

我也要。。。。。。。



页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2006-05-20 22:19 

注册: 2005-12-20 21:26
帖子: 122
地址: UESTC
送出感谢: 0 次
接收感谢: 0 次
我的simsun的deb包是在我们学校下的,外网不清楚什么地方可以下,你多找几个源看!


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2006-05-22 13:29 

注册: 2005-12-25 20:44
帖子: 116
送出感谢: 0 次
接收感谢: 0 次
我也是教育网滴

能说说你们学校的源么

谢谢


页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2006-05-28 13:57 
头像

注册: 2005-09-27 18:24
帖子: 498
地址: 杭州
送出感谢: 0 次
接收感谢: 0 次
emacs 22 23哪里有deb包?


页首
 用户资料  
 
12 楼 
 文章标题 :
帖子发表于 : 2006-05-29 12:23 

注册: 2005-12-20 21:26
帖子: 122
地址: UESTC
送出感谢: 0 次
接收感谢: 0 次
TO moonchild:我学校是电子科技大学,具体的源好象是内网的。

emacs 22 23 浙江大学和中科大都有deb包。


页首
 用户资料  
 
13 楼 
 文章标题 :
帖子发表于 : 2006-05-30 11:09 

注册: 2005-12-25 20:44
帖子: 116
送出感谢: 0 次
接收感谢: 0 次
thanks



页首
 用户资料  
 
14 楼 
 文章标题 :
帖子发表于 : 2006-06-13 23:41 

注册: 2006-06-13 23:38
帖子: 19
送出感谢: 0 次
接收感谢: 0 次
中科大的源里有么?没找到啊
我用的是breezy版的ubuntu

duoxing 写道:
TO moonchild:我学校是电子科技大学,具体的源好象是内网的。

emacs 22 23 浙江大学和中科大都有deb包。


页首
 用户资料  
 
15 楼 
 文章标题 :
帖子发表于 : 2006-06-24 8:06 

注册: 2006-01-23 16:41
帖子: 108
送出感谢: 0 次
接收感谢: 0 次
lz,我用的是ubuntu510,按照你这个改的
duoxing@smartfish:~$ cat /etc/environment
LANGUAGE="en_CN:en_US:en_GB:en"

LANG=en_US

LC_CTYPE=zh_CN.GBK

用C-space可以调用scim,但是scim是英文/欧洲,还是只能输入英文阿!


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 29 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

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


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

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

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