in Uncategorized

在Linux下用EMACS+GNUS访问新闻组

费了好大力气,参考了很多网上大牛们的配置才将EMACS+GNUS配置的比较可以了,包括可以自己设定MAIL中的头像标志,在这里把配置重点写一下。

我用的是EMACS22,回头再把emacs的.emacs配置文件发出来,这里只说.gnus.el的配置。

;;Gnus 是个古老的,强大的邮件,新闻阅读lisp程序.

;;用户资料设定
(setq user-full-name "Binglin Young")
(setq user-mail-address "Swordgreen@gmail.com")
(setq message-signature-file "~/.signature") ;;签名文件
;;服务器的设定
(setq gnus-select-method '(nntp "news.newsfan.net"))
(add-to-list 'gnus-secondary-select-methods '(nntp "news.newsfront.net"))
					;(add-to-list 'gnus-secondary-select-methods '(nntp "news.php.net"))
					;(add-to-list 'gnus-secondary-select-methods '(nntp "news.newsgroup.com.hk"))
					;(add-to-list 'gnus-secondary-select-methods '(nntp "news.CN99.com"))
					;(add-to-list 'gnus-secondary-select-methods '(nntp "groups.google.com"))

;;开启代理功能,为了能让gnus支持离线浏览,gnus 5.10.x会自动开启该功能。
					;(gnus-agentize)

;;自动换行功能。
(add-hook 'message-mode-hook
	  (lambda ()
	    (setq fill-column 80) ;;这里的72是等一行到了72个字符后开始换行
	    (turn-on-auto-fill)))
(setq message-cite-function 'message-cite-original-without-signature)

;; 设定帖子的字符集
					;(setq gnus-summary-show-article-charset-alist '((1 . cn-gb-2312) (2 . big5)))
(setq gnus-default-charset 'cn-gb-2312) ;; 默认编码
(setq gnus-group-name-charset-group-alist '((".*" . cn-gb-2312))) ;; 组名编码
(setq gnus-summary-show-article-charset-alist '((1 . cn-gb-2312) (2 . big5))) ;; 刷新编码
(setq gnus-newsgroup-ignored-charsets '(unknown-8bit x-unknown iso-8859-1)) ;; 忽略编码

;;设置发出邮件的编码
(setq gnus-posting-styles
      '((".*"
         (name "Binglin Young")
	 ("Face" "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") ;;这一段就是你的头像标志了,后面将加以说明

	 (address "SwordGreen@Gmail.com")
	 (organization "Moldova State University")
         (eval (setq mm-coding-system-priorities
                     '(iso-8859-1 gb2312 utf-8))))
        ("^tw.comp"
	 (name "Binglin Young")
	 (address "SwordGreen@Gmail.com")
	 (organization "Moldova State University")
         (eval (setq mm-coding-system-priorities
                     '(iso-8859-1 big5 utf-8)))))
      )

;; 改变阅读新闻时窗口的布局,窗口划分为上4下6(比例)
(gnus-add-configuration '(article
			  (vertical 1.0
				    (summary .3 point)
				    (article 1.0))))

;;;
(setq gnus-confirm-mail-reply-to-news t
      message-kill-buffer-on-exit t
      message-elide-ellipsis "[...]n"
      )

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

;; 新闻组分组
;; 有时订阅了很多新闻组,堆在一起不好管理。这个功能可以创建目录来分层管理
;; 这些新闻组。
;; 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

;;中文设置
(setq gnus-summary-show-article-charset-alist
      '((1 . cn-gb-2312) (2 . big5) (3 . gbk) (4 . utf-8)))

(setq
 gnus-default-charset 'cn-gb-2312
 gnus-group-name-charset-group-alist '((".*" . cn-gb-2312))
 gnus-newsgroup-ignored-charsets
 '(unknown-8bit x-unknown iso-8859-1 ISO-8859-15 x-gbk GB18030 gbk DEFAULT_CHARSET))

;;;;;;;;;;;;;;;;;;;;
;;解决gb18030乱码
;;;;;;;;;;;;;;;;;;;;
(setq gnus-newsgroup-ignored-charsets
      '(unknown-8bit x-unknown gb18030))


					;另外,有些用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")))

;; Use emacs-w3m to render html mails and display images
(setq mm-text-html-renderer 'w3m
      mm-inline-text-html-with-images t
      mm-inline-large-images t)

;; Show plain text part by default, but provide buttons for the
;; html part
(setq mm-discouraged-alternatives '("text/html" "text/richtext" "text/enriched")
      gnus-buttonized-mime-types '("multipart/signed" "multipart/alternative"))

;;;;;;;;;;;;;;;;;;;;
;;自动显示图片
;;;;;;;;;;;;;;;;;;;;
(auto-image-file-mode)
(setq mm-inline-large-images t)
(add-to-list 'mm-attachment-override-types "image/*")

;;当你按下发送邮件的组合键时,gnus就会要求你确认,
;;当你回答“yes”时才会发送邮件,如果回答“no”将取消发送。
(defadvice message-send (around my-confirm-message-send)
  (if (yes-or-no-p "Really send message? ")
      ad-do-it))
(ad-activate 'message-send)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq message-cite-function 'message-cite-original-without-signature)

;;获取整个回话
;(setq gnus-fetch-old-headers 'some)  ;开启后,每次从服务器下载量太大
;;将头信息完整的表示出来
(setq gnus-visible-headers
      "^(From:|Subject:|Date:|Followup-To:|X-Newsreader:|User-Agent:|X-Mailer:)")
;;美化帖子排布
(setq gnus-summary-line-format ":%U%R %B %s %-60=|%4L |%-20,20f |%&user-date; n")
;;加快进组速度
(gnus-compile)
;; Set this to t if you've got a slow connection
(setq gnus-asynchronous nil)

;; Turn on nntp and imap cache
(setq gnus-cacheable-groups "^(nntp)")
;;开启缓存来保存文章
(setq gnus-use-cache t)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; 开启记分功能
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq gnus-use-adaptive-scoring t)
(setq gnus-save-score t)
(add-hook 'mail-citation-hook 'sc-cite-original)
(add-hook 'message-sent-hook 'gnus-score-followup-article)
(add-hook 'message-sent-hook 'gnus-score-followup-thread)



;;自动刷新,查看是否有新文章
;; Automate the fetching of mail.
(require 'gnus-demon)

;; Check for new mail once in every this many minutes.
(gnus-demon-add-handler 'gnus-demon-scan-news 5 nil)

;; Add some custom keys, press f5 to refresh the group at the cursors or press M-f5 to refresh all groups at level 1 or lower
;; (remember to set the group level to 1 to be refreshed by this)
(define-key gnus-group-mode-map [f5] 'gnus-group-get-new-news-this-group)
(define-key gnus-group-mode-map [(meta f5)] '(lambda ()
                                               (interactive)
                                               (gnus-group-get-new-news 1)))

对头像图表制作的说明(注意,我这里使用的是Face, 而不是X-Face,这两者之间的文件格式或着说是face header并不一样,网上比较容易找到X-Face的资料,但Face的很少,可是不知道为什么,我的emacs就是不支持X-Face, 但可以使用Face header)。

首先你需要制作一个48*48像素的png图像文件,然后去

http://www.motobit.com/util/base64-decoder-encoder.asp

生成你需要的face header. 再在你的.gnus.el文件中加入这段header代码,具体的地方就是那个像乱码一样的一段代码。
然后重新启动gnus,去新闻组发个帖子看看,你的头像是不是已经在邮件头信息里了。

以下是效果图,现在写起来容易,为了配置好,可是把我累了个半死,走了不少弯路啊。
My Gnus

回头再写写如何使用gnus浏览新闻组吧(今天实在是太累了,回头补上)。

Write a Comment

Comment