Board logo

标题: Emacs Gnus 的基本配置与使用(4) [打印本页]

作者: look_w    时间: 2018-6-13 14:43     标题: Emacs Gnus 的基本配置与使用(4)

定制 Gnus ,添加更多特色功能通过上面的基础教程,我们已经可以把 Gnus 用起来了,当然,我们不能仅仅满足于会用 Gnus,我们还可以定制更多我们喜欢的参数,从而把 Gnus 用好。
添加签名档签名档几乎是新闻组里必不可少的一部分,通过签名档,可以让别人更快速地了解有关你的信息。你可以在签名档里添加有关对你自己的介绍,或是解释一下你的 Email,或者仅仅是写上几句牢骚。
如果我们需要为中文新闻组设定中文签名档,为英文新闻组设定英文签名档,则可以用 来实现:
1
2
3
4
5
(setq gnus-posting-styles
      '(
        (".*" (signature-file "~/emacs/gnus/.signature_english"))
        ("cn.*" (signature-file "~/emacs/gnus/.signature_chinese"))
    ))




上面的代码用正则表达式来把新闻组和签名文件绑定起来,对于符合 cn.* 这样正则表达式的新闻组,则发帖的时候会自动在未尾加上文件 ~/emacs/gnus/.signature_chinese 里的内容;而对于其他的新闻组,则用英文签名档,即文件 ~/emacs/gnus/.signature_english 里的内容。这里注意,签名档不要太长,一来系统可能不允许,二来也的确是影响他人的阅读。
给邮件分组如果你的邮件量巨大的话,把它们一股脑地放在同一个文件夹里,查阅起来太不方便了,也可能会错过重要的邮件。这个时候,我们需要做的就是利用正则表达式,把拣回来的邮件进行自动分组 ( splitting )。这里以用 nnml 方式收信为例,简单介绍一下 Gnus 的邮件分组技术。可以把下面的代码放到 .gnus.el 里:
1
2
3
4
5
6
7
8
;; set mail folder
(setq nnmail-split-methods
     '(
       ("Emacs.org-mode" "^To:.emacs-orgmode@gnu.org")
       ("Emacs.general" "^Subject:.*emacs")
       ("Email.personal" "^To:.waterlin@ymail.com")
       ("Email.errors" "^From:.*\\(mailer.daemon\\|postmaster\\)")
       ))




在上面的代码里,我们把邮件列表里 emacs-orgmode@gnu.org 来的邮件都扔到组 nnml:Emacs.org-mode 里,把私人邮件都放到 nnml:Email.personal 里,把退信之类的错误邮件都放到 nnml:Email.errors 分组里。这样,我们一收回邮件,就可以先跑去集中查阅一下私人邮件,剩下有时间再看看 emacs-orgmode@gnu.org 邮件列表,最后有空再处理一下退回来的邮件。这对于提高我们的工作效率,大有帮助。
当然,有的时候我们也需要手工把邮件分组,用命令 B m(gnus-summary-move-article),然后输入 group 的名称就可以移动邮件到该组了。如果该组不存在,则会根据输入的名称创建。
如果需要移动多个邮件,则可以把它们都标记为 #(gnus-summary-mark-as-processable) ,然后再输入 B m(gnus-summary-move-article)。如果有一个消息标记错了,则可以用 M-#(gnus-summary-unmark-as-processable) 来取消。如果要取消所有已经标记成 #的消息,用命令 M P U(gnus-summary-unmark-all-processable) 即可。
Gnus 的邮件分组技术还有着更灵活的使用技巧,有兴趣深入了解的可以查阅一下 。
新闻组的刷新当你在 *Summary* 缓冲区里(不管是邮件或是新闻组)阅读了一段时间以后,你可能想看看本组里有没有新的文章或邮件,这时用命令 M-g 就可以刷新该 *Summary* 缓冲区。
在 *group* 里,需要重新从服务器读取、刷新分组信息,按 g 就可以了。
设定更顺手的 Summary 缓冲区阅读操作当你在 *Summary* 缓冲区里阅读帖子的时候,按了空格或是回车,即会把窗口分裂成上下两格(如图 3 所示),上面依然是 *Summary* 缓冲区,下面用来显示该帖子的具体内容。有的时候,下面的内容太长了不能在一个屏幕里显示出来,这个时候,你并不需要把焦点切换到下面的窗口,只需要用空格键来进行翻页。同时,可以用 DEL 键来往上翻页。很酷吧~~
图 3. Summary 分成上下两格当然,我们还可以干一件更酷的事,把下面这一行加到 .gnus.el里:
1
2
(define-key gnus-summary-mode-map (kbd "Backspace")
             'gnus-summary-prev-page)




我们就可以用 Backspace键来向上翻动文章了,再也不用在键盘上找那个可怜的 Del键了。
Emacs Gnus 用假地址后带来的问题如果你经常在 Usenet 上留下足迹,那么你可能会收到大量的垃圾邮件。很多垃圾邮件制造程序,会自动收集新闻组里的邮件地址并发送数量可观的垃圾邮件。要解决这个问题,只有对你留在 Usenet 上的邮件地址作文章了。
如果我们用一些方法 ,则我们很可能也不能用 Gnus 来发邮件了,因为你已经更新了默认的 email 地址。
我们可以通过设置不同的 来解决这个问题,可以通过正则表达式,用类似下面的发布风格来对新闻组的发信与普通邮件的发信给予区分,从而让留在新闻组里的邮件是一个假的邮件地址。把下面的代码放到你的 .gnus.el里:
1
2
3
4
5
6
7
8
9
10
11
12
(setq gnus-posting-styles
      '(
        (".*"
         (signature-file "~/emacs/gnus/.signature_english")
         (address "WaterLin@ymail.invalid"))
        ("cn.*"
         (signature-file "~/emacs/gnus/.signature_chinese")
         (address "WaterLin@ymail.invalid"))
        ("nnml:.*"
         (signature-file "~/emacs/gnus/.signature_english")
         (address "WaterLin@ymail.com"))
    ))




当然,如果你留了一个假地址在新闻组上,别忘了在你的签名档里解释一下。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0