LinuxSir.cn,穿越时空的Linuxsir!

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

emacs中gnus配置详解(.gnus.el)(作者:进化的鱼)

[复制链接]
发表于 2003-8-16 16:44:47 | 显示全部楼层 |阅读模式
向经常出没在新闻组中的大虾“进化的鱼”求救~很热情的给出了他自己的配置文件,并且加入了详细的中文注释~

存为 ~/.gnus也可以~~

;; $Id: .gnus.el,v 1.38.2.2 2003/08/14 07:45:29 spr Exp $  -*- Emacs-Lisp -*-
;; Chunyu's .gnus.el is created on 2003/02/24 on db.hit.edu.cn.
;; Chunyu <dddkk@sina.com>.
;; 我的 .gnus.el 文件,专为 Gnus 5.10 的,没有在其他版本试过。
;;;;; Gnus 支持订阅多个源,一个主多个从,源可以是 news,可以是mail。
(setq gnus-select-method '(nntp "news.yaako.com")
      ;; 这些是其他的。
      gnus-secondary-select-methods
      '(;;(nnml "private")              ;; 这个是本地邮件
        (nntp "news.newsfan.net")       ;; 新帆
        ;;(nntp "news.cnnb.net")        ;; 宁波
        ))
;;;;; 各种各样的变量设置 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;; 很多设置,其中由一些也是缺省值,留作参考;在变量名上按 C-h v RET
;;;;; 就能知道是作什么用的了。
(setq gnus-auto-select-subject 'first
      gnus-auto-select-first nil
      gnus-read-active-file nil
      gnus-read-newsrc-file nil
      gnus-save-newsrc-file nil
      gnus-save-killed-list nil
      gnus-asynchronous t
      ;; 看看 gnus 在做什么,每50封显示一下
      gnus-summary-display-while-building 50
      gnus-summary-display-arrow nil
      gnus-always-read-dribble-file t
      gnus-confirm-mail-reply-to-news t
      gnus-gcc-mark-as-read t ;; Archive的组自动标记为已读
      gnus-gcc-externalize-attachments 'all ;; 自己附件不做 Archive
      ;; 只处理最后一部分(body?)的空行,
      gnus-treat-strip-trailing-blank-lines 'last
      gnus-treat-strip-leading-blank-lines 'last
      gnus-treat-strip-multiple-blank-lines 'last
      ;; 在 X 下的时候,不要把表情符号翻译为图形
      gnus-treat-display-smileys nil)
;;;;; group parameters 还没建设好,呵呵
(setq gnus-parameters
      ;; 按我的邮件分类分别设置不同的 group parameters
      '(("list\\..*" (subscribed . t))
        ("misc\\..*" (auto-expire . t))))
;;;;; 平时喜欢在 console 下,所以,需要配置一下原来不是很漂亮的 console face
(setq gnus-header-face-alist
      '(("From" nil gnus-header-from-face)
        ("Subject" nil gnus-header-subject-face)
        ("Newsgroups" nil gnus-header-newsgroups-face)
        ;; 喜欢看看别人都用什么 news client,所以突出一下比较好!
        ("User-Agent\\|X-Mailer\\|X-Newsreader" gnus-header-subject-face gnus-header-from-face)
        ("" gnus-header-name-face gnus-header-content-face)))
;;;;; 我之看简体中文和英文的组,缺省为这个编码最好
(setq gnus-default-charset 'cn-gb-2312
      ;; 新帆用中文组名,需要配置这个,不过索性都是 gb2312 的
      gnus-group-name-charset-group-alist '((".*" . gb2312))
      ;; 有时候遇到 big5 的按一下 2 g 就能很容易的搞定
      gnus-summary-show-article-charset-alist '((1 . cn-gb-2312) (2 . big5))
      ;; 使用 iso-8859-1 的有一些不过就是 gb2312
      gnus-newsgroup-ignored-charsets '(unknown-8bit x-unknown iso-8859-1)
      ;; 在这些时候发送邮件,gb2312 的不用编码也能被多数人看到,他们也都用 gb2312 啊
      gnus-group-posting-charset-alist
      '(("^\\(cn\\)\\.[^,]*\\(,[        \n]*\\(cn\\)\\.[^,]*\\)*$" gb2312 (gb2312))
        ("^\\(计算机\\|休闲娱乐\\).*" gb2312 (gb2312))
        (message-this-is-mail nil nil)
        (message-this-is-news nil t)))
;; Emacs 不支持 gb18030,如果 gb2312 能看到,就看到,看不到就看不到了,
;; 索性认为 gb18030 也是 gb2312 罢。
;; (define-coding-system-alias 'gb18030 'gb2312)
;; 这些都是我的地址,稍微改了改,如果你直接 copy 的,别忘了改啊。设置这
;; 个,在 mail group 里面就不用看自己的名字和地址,而是发送的地址了。
(setq gnus-ignored-from-addresses
      (regexp-opt '("dddkk@sina.com"
                    "sss@aa.lala.cn"
                    "sss@bb.lalalala.cn"
                    "chunyu@hhh.hhh")))
;; Archive 的组,按news和mail分开,再按月分。
(setq gnus-message-archive-group
      '((if (message-news-p)
            (concat "news." (format-time-string "%Y-%m"))
          (concat "mail." (format-time-string "%Y-%m")))))
(setq chunyu-gnus-x-face
      ;; 我的 X-Face,用别的工具把图片转为字符串的时候,需要把这两个字
      ;; 符 \ 和 " 分别转义为 \\ 和 \" 其他字符不用转义
      (concat "$,MrC{\".#Of\"+5o4f&\"Y%BEXbu::2[3u0PK.G\\]'&Irj>a"
              "%BRPq%aA\"6f<Ywarj_/AR5<o9'<!\"9.\\ZqzkDv-OK0&Vx&D"
              "(0'5O(jx,]LgQk/J@P<F$X\\br>y\"[Eo8lEBloB*tfsz~]\\L"
              "l\\}&C{}ar^R\\Ic9shnEW?'8o-9%MQ03+izFFbQV&CUKVd>%V"
              "1sog)m1$L=Z(K!I5ID8nucdF}Bb(/r>b]7*t@GP%=VS_~:&~:F"
              "$?7,i1Wqj\\C(q)|@71421c2ynlCQ<u%\"'6|28Oww\":7N6=F"
              "s/?mUj&_^u&\\^yrrY{O"))
;; 根据不同的,我的名字和地址是不一样的。不用我自己改,Gnus 给我自动的
;; 改过来了。
(setq gnus-posting-styles
      '((".*" ;; 缺省是这个
         ;; 签名文件,在我的 ~/.sig 目录里面由几个签名文件
         (signature-file "~/.sig/default")
         ;; 发信的姓名
         (name "Wang Chunyu")
         ;; 显示地址
         (address "dddkk@sina.com"))
        ("^cn\\..*\\|^nntp\\+news.*" ;; 新闻组里用这个
         (signature-file "~/.sig/cnnews")
         (name "进化的鱼")
         (address "dddkk@sina.com")
         ;; 这里用到我的 X-Face 了
         ("X-Face" 'chunyu-gnus-x-face))
        ("^nnml\\+private:list\\..*" ;; 订阅的一些国外的 mailing list 用这个
         (signature-file "~/.sig/pubmail")
         (name "Chunyu Wang")
         (address "sss@aa.lala.cn"))
        ("^nnml\\+private:\\(classmate\\|friends\\).*" ;; 部分邮件用这个
         (signature-file "~/.sig/mail")
         (name "我的名字")
         (address "chunyu@hhh.hhh"))))
;;;;; 喜欢用 Supercite,可以有多种多样的引文形式 ;;;;;;;;;;;;;;;;;;;;;
(setq sc-attrib-selection-list nil
      sc-auto-fill-region-p nil
      sc-blank-lines-after-headers 1
      sc-citation-delimiter-regexp "[>]+\\|\\(: \\)+"
      sc-cite-blank-lines-p nil
      sc-confirm-always-p nil
      sc-electric-references-p nil
      sc-fixup-whitespace-p t
      sc-nested-citation-p nil
      sc-preferred-header-style 4
      sc-use-only-preference-p nil)
(setq mail-self-blind t
      message-from-style 'angles
      message-kill-buffer-on-exit t
      message-cite-function 'sc-cite-original
      message-elide-ellipsis "    [...]\n"
      message-sendmail-envelope-from nil
      ;;有时候肯能需要这个两个变量,比如没有启动 Gnus 的时候打开邮件
      message-signature t
      message-signature-file "~/.sig/default"
      message-forward-as-mime nil ;; 转发不喜欢用附件邮件,还是直接的内容比较好
      ;; 也不喜欢内容里面由太多的邮件头信息,如果有一个
      ;; message-forward-with-headers 变量,这里就不用这么麻烦了
      message-forward-ignored-headers
      (concat
       "^X-\\|^Old-\\|^Xref:\\|^Path:\\|^[Cc]c:\\|^Lines:\\|^Sender:"
       "\\|^Thread-\\|^[GB]cc:\\|^Reply-To:\\|^Received:\\|^User-Agent:"
       "\\|^Message-ID:\\|^Precedence:\\|^References:\\|^Return-Path:"
       "\\|^Cancel-Lock:\\|^Delivered-To:\\|^Organization:\\|^content-class:"
       "\\|^Mail-Copies-To:\\|^Return-Receipt-To:\\|^NNTP-Posting-Date:"
       "\\|^NNTP-Posting-Host:\\|^Content-Transfer-Encoding:"
       "\\|^Disposition-Notification-To:\\|^In-Reply-To:\\|^List-"
       "\\|^Status:\\|^Errors-To:\\|FL-Build:"))
;;;;; 压缩保存的邮件
(setq nnml-use-compressed-files t)
;;;;; 邮件分类 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;; 如果由重复,删除!
(setq nnmail-treat-duplicates 'delete
      nnmail-crosspost nil              ; 同一个邮件不要到多个组
      nnmail-split-methods 'nnmail-split-fancy ; 这个分类方法比较灵活
      nnmail-split-fancy-match-partial-words t ; 单词部分匹配也算成功匹配
      nnmail-split-fancy
      '(| ;; 根据 mailing list 分类
        (any "emacs-devel@gnu.org" "list.emacs-devel")
        (any "guile-user@gnu.org" "list.guile-user")
        (any "guile-sources@gnu.org" "list.guile-sources")
        (any "ding@gnus.org" "list.ding")
        (any "fetchmail-friends" "list.fetchmail")
        (any "zope@zope.org" "list.zope")
        (to "chunyu@hhh.hhh\\|dddkk@sina.com\\|sss@aa" ;; 直接给我的再分类
            (| (from "bbs@bbs" "mail.bbs") ;; 从 bbs 给自己转发的邮件
               ;; ... 这里省去了一些 (from ...)
               (from "m_pupil@yahoo.com.cn" "mail.friends") ;; It's me FKtPp ;)
               "mail.misc")) ;; 匹配不上
        "misc.misc"))        ;; 这里或许是 junk 了
;; topic mode 参考这里:(info "(gnus)Group Topics") ;;;;;;;;;;;;;;;;;;
(add-hook 'gnus-group-mode-hook 'gnus-topic-mode)
(add-hook 'mail-citation-hook 'sc-cite-original)
(add-hook 'message-mode-hook (lambda () (setq fill-column 72) (turn-on-auto-fill)))
;; html 的邮件不看!
(eval-after-load "mm-decode"
  '(progn
     (setq mm-discouraged-alternatives '("text/html")
           mm-automatic-display (remove "text/html" mm-automatic-display))))
;;; 这个东西可以自动帮你更新,参考这里:(info "(gnus)Daemons")
;; (gnus-demon-init)
;; (gnus-demon-add-rescan)
;; (gnus-demon-add-disconnection)
;; (gnus-demon-add-scanmail)
;;;;; 颜色设置 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(unless window-system
;;;; 突出显示自己发送的帖子和别人回应我的帖子。参考这里设置的:
  ;;   http://my.gnus.org/Members/dzimm ... 19165012198456/view
  (require 'gnus-sum)
  (defface chunyu-gnus-own-related-posting-face nil "ostings by myself.")
  (set-face-attribute 'chunyu-gnus-own-related-posting-face nil :foreground "red" :weight 'bold)
  (add-to-list 'gnus-summary-highlight
               '((and (> score 6500) (eq mark gnus-unread-mark)) . chunyu-gnus-own-related-posting-face))
  (eval-after-load "gnus-cite"
    '(progn
       (set-face-attribute 'gnus-cite-face-2 nil :foreground "magenta")
       (set-face-attribute 'gnus-cite-face-3 nil :foreground "yellow")
       (set-face-attribute 'gnus-cite-face-4 nil :foreground "cyan")))
  (eval-after-load "gnus-art"
    '(progn
       (set-face-attribute 'gnus-header-subject-face nil :foreground "red" :weight 'bold)))
  ;; 一些颜色上的设置,我基本只在 console 下,所以颜色只有几种。
  (set-face-attribute 'gnus-group-mail-1-empty-face nil :foreground "magenta")
  (set-face-attribute 'gnus-group-mail-1-face nil :foreground "magenta" :weight 'bold)
  (set-face-attribute 'gnus-group-mail-2-empty-face nil :foreground "cyan")
  (set-face-attribute 'gnus-group-mail-2-face nil :foreground "cyan" :weight 'bold)
  (set-face-attribute 'gnus-group-mail-3-empty-face nil :foreground "green")
  (set-face-attribute 'gnus-group-mail-3-face nil :foreground "green" :weight 'bold)
  (set-face-attribute 'gnus-group-news-1-empty-face nil :foreground "magenta")
  (set-face-attribute 'gnus-group-news-1-face nil :foreground "magenta" :weight 'bold)
  (set-face-attribute 'gnus-group-news-2-empty-face nil :foreground "cyan")
  (set-face-attribute 'gnus-group-news-2-face nil :foreground "cyan" :weight 'bold)
  (set-face-attribute 'gnus-group-news-3-empty-face nil :foreground "green")
  (set-face-attribute 'gnus-group-news-3-face nil :foreground "green" :weight 'bold))
;; Chunyu's .gnus.el ends here.
发表于 2003-8-17 11:07:28 | 显示全部楼层
精品
收藏
发表于 2004-12-26 15:57:18 | 显示全部楼层
去年的帖也收下了
发表于 2004-12-26 18:54:41 | 显示全部楼层
http://my.gnus.org/,配置文件一堆一堆的。

王春宇翻译的那个Gnus FAQ新手倒是可以看看,比一知半解抄配置文件有效多了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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