設(shè)置新聞服務(wù)器
啟動(dòng) gnus 非常簡(jiǎn)單,在你的 Emacs 里執(zhí)行 M-x
gnus 命令就可以了,如果你想在另一個(gè) frame 里啟動(dòng) gnus,那就執(zhí)行 M-x gnus-other-frame
。但是,現(xiàn)在先別啟動(dòng),因?yàn)槲覀兿鹊眠M(jìn)行一些配置。 gnus 啟動(dòng)的時(shí)候會(huì)去讀你寫在 ~/.gnus.el 里的內(nèi)容,就像 Emacs
啟動(dòng)時(shí)要讀 ~/.emacs 一樣。當(dāng)然你也可以把對(duì) gnus 的配置寫在 ~/.emacs 里,但是最好還是使用 gnus 自己的配置文件。
首先,我們要設(shè)置新聞服務(wù)器,也就是 nntp 服務(wù)器, nntp 是 Network
News Transfer Protocal 的縮寫,國(guó)內(nèi)提供 nntp 服務(wù)的主機(jī)不多,教育網(wǎng)內(nèi)能訪問的nntp 服務(wù)器,我只找到了一個(gè):
news.cn99.com,好了,現(xiàn)在就在 ~/.gnus.el 里加上這一句:
(setq gnus-select-method '(nntp "news.cn99.com"))
;; or news.yaako.com
設(shè)置郵件服務(wù)器
現(xiàn)
在,我們進(jìn)行接收郵件的設(shè)置。玩*nix 的老鳥都知道,*nix 的哲學(xué)是每個(gè)程序"Only do one thing, and do it
well." 因此就有了 sendmail, fetchmail, mailreader 等等一大票程序來干收發(fā)郵件這個(gè)活兒。嚴(yán)格地說
Emacs(gnus) 的分工是做 mailreader,也就是說我們用 emacs 來寫信,然后由另一個(gè)程序,比如sendmail
來把信發(fā)出去;收信的過程也是類似的,由一個(gè)程序(比如 fetchmail) 負(fù)責(zé)把信取回來,放在一個(gè) spool 里面,然后我們用 Emacs
來讀信。你先別跑,我不是讓你去配置 sendmail 這樣的大怪物,我們平常發(fā)發(fā)信、收收信這點(diǎn)小活兒,用不著勞 sendmail
老人家的大駕。
我們用的最多的郵件收發(fā)方式是這樣的,有個(gè) POP3 服務(wù)器,收信時(shí)我們到那里去取;有個(gè) SMTP 服務(wù)器,發(fā)信時(shí)我們把信送到那里去。這點(diǎn)小活兒,現(xiàn)在 emacs 自己就可以搞定了。現(xiàn)在我們看看怎么設(shè)置:
首先我們?cè)O(shè)置 POP3 服務(wù)器:
(setq mail-sources
'((pop :server "pop.163.com" ;; 在這里設(shè)置 pop3 服務(wù)器
:user "brep" ;; 用戶名
:port "pop3"
:password "mypasswd"))) ;; 密碼
然后我們還要告訴 gnus 如何存放接收來的郵件, gnus 把這個(gè)叫做 backend,最常用的方式是 nnfolder,另外還有 nnmbox, nnml 等其它幾種方式,我們選擇其中一種就可以了:
(setq gnus-secondary-select-methods '((nnfolder "")))
然
后我們?cè)O(shè)置 SMTP 服務(wù)器,采用 smtp 方式發(fā)送郵件需要一個(gè)小程序 smtpmail.el, 這個(gè)程序現(xiàn)在已被納入了官方的
Emacs,如果你用的是最新的 CVS Emacs,比如 Emacs22, Emacs23 等,就已經(jīng)包含了這個(gè)程序。你可以檢查一下
emacs 的安裝目錄中 lisp/mail/ 目錄下有沒有這個(gè)文件,如果沒有的話,就只好自己下載、安裝了。現(xiàn)在我們看看如何設(shè)置:
(setq user-full-name "Brep") ;; 外發(fā)的郵件采用這個(gè)名字
(setq user-mail-address "brep@example.com") ;;外發(fā)的郵件采用這個(gè)地址
(setq smtpmail-auth-credentials
'(("smtp.163.com" ;; SMTP 服務(wù)器
25
"brep" ;; 用戶名
"mypasswd"))) ;; 密碼
(setq smtpmail-default-smtp-server "smtp.163.com")
(setq smtpmail-smtp-server "smtp.163.com")
(setq message-send-mail-function 'smtpmail-send-it)
中文設(shè)置
中文!中文!永遠(yuǎn)都是頭痛的事兒。把下面這些加在 .gnus.el 里面吧:
(set-language-environment 'Chinese-GB)
(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 方式發(fā)出的郵件里有 html,加入下面的設(shè)置,只看其中的plain text 部分:
(eval-after-load "mm-decode"
'(progn
(add-to-list 'mm-discouraged-alternatives "text/html")
(add-to-list 'mm-discouraged-alternatives "text/richtext")))
訂閱新聞組
現(xiàn)在我們可以選擇幾個(gè)自己喜歡的新聞組,作為默認(rèn)的新聞組:
(setq gnus-default-subscribed-newsgroups
'("gnu.emacs.help" ;; 這里不錯(cuò)噢,有關(guān) emacs 使用的問題都在這里討論
"cn.comp.os.linux")) ;; 這里也有一個(gè) emacs 小團(tuán)伙,
;; 有空去湊個(gè)熱鬧吧,中文的喲
啟動(dòng) gnus
現(xiàn)在到了關(guān)鍵時(shí)刻,成敗在此一舉:
M-x gnus
嘿嘿,傻眼了吧, Emacs 沒反應(yīng)了!!! 沒關(guān)系,表?yè)?dān)心,這是正常現(xiàn)象,
gnus 是個(gè)單線程程序, nntp
服務(wù)器又慢的要命(你要是在公網(wǎng),說不定能好點(diǎn)兒),多等一會(huì)兒就好了,一般也就兩三分鐘,運(yùn)氣不好的話還要長(zhǎng)些,什么?你等不及了,要編輯文件?那就只
好麻煩您老再開一個(gè) Emacs 吧!
Group buffer
如果一切正常, gnus 啟動(dòng)完成的時(shí)候,我們就會(huì)看到 group buffer,這里列出了我們訂閱的新聞組,類似這樣:
49: gnu.emacs.help
6: cn.comp.os.linux
8: nndoc+gnus-help:gnus-help
0: nndraft:queue
0: nndraft:drafts
新聞組前面的數(shù)字,表示這個(gè)組里還有多少帖子沒讀過。現(xiàn)在,只要把光標(biāo)移動(dòng)到要讀的新聞組上面,敲下回車鍵就可以讀帖子了。
不要 kill 掉這個(gè) buffer 喲,我們經(jīng)常需要回到這個(gè) buffer 。如果你讀完了新聞、信件,想退出 gnus,只要在這個(gè) buffer 里按下 q 鍵就可以了。
Summary buffer
當(dāng)我們閱讀某個(gè)新聞組的時(shí)候,就會(huì)進(jìn)入 summary buffer,其中列出了作者和帖子的標(biāo)題,如果是跟帖,會(huì)縮進(jìn)表示,象下面這樣:
[ 51: 空殼殼 ] 已調(diào)試好的 Emacs 下載(WIN 版本)
[ 283: 空殼殼 ] 這個(gè)包的.emacs 配置文件
[ 5: Brep ]
< 4: watercloud > Re: 已調(diào)試好的 Emacs 下載(WIN 版本)
[ 9: It's me FKtPp ;) ]
[ 2: 空殼殼 ]
[ 7: It's me FKtPp ;) ]
如果要讀貼子,只要按下空格鍵就行了。按下 q 鍵將返回到 Group buffer.
發(fā)帖、回帖
在 newsgroup 里發(fā)帖子叫 post article, 發(fā)貼子很簡(jiǎn)單,只要我們按下 a 這一個(gè)鍵就可以了,寫完后 C-c C-c 發(fā)出,如果寫了一半兒想取消,則鍵入 C-c C-k 。
在 newsgroup 回帖子叫 follow up,按下 f 鍵就行了,但是這樣回帖并不引用原作者的文章,如果你想引用原作者的文章,那就用 F 鍵。
如果你想和文章的作者私下聊聊,那就用 r 或者 R 鍵,給原作者回信叫做reply to, 這時(shí)只有原作者一個(gè)人能收到信,與 follow up 不同, follow up 的時(shí)候,凡是訂閱了新聞組的人都能讀到信。
我的信箱哪里去了?
按照手冊(cè)中的說法,我們通過 POP3 接收到的信件會(huì)被送到一個(gè)叫做 mail.misc 的組里, gnus 會(huì)自己建立這個(gè)組,但是我找了好幾天也沒找到。怎么辦?沒關(guān)系,我們自己建一個(gè):
在 Group buffer 里,鍵入 G m,系統(tǒng)提示我們輸入組名: mail.misc,然后提示我們輸入 server 名,此時(shí)我們輸入: nnfolder,注意,服務(wù)器名要與你選擇的 backend 一致。
建
立完成之后,我們可以在 Group buffer 里鍵入 ^,此時(shí)我們將進(jìn)入 Server buffer,
在這里我們將看到自己選擇的服務(wù)器,比如: news.cn99.com 。其中, nnfolder 服務(wù)器里應(yīng)該有我們新建的 mail.misc
組。我們?cè)诜?wù)器名上輸入回車,這樣就能看到這個(gè)服務(wù)器中的組,在想要訂閱的組上面按下'u'鍵即可訂閱這個(gè)組,取消訂閱同樣也是用這個(gè)鍵。
發(fā)信
用 gnus 發(fā)信極其簡(jiǎn)單,隨時(shí)都可以,按 m 一鍵搞定, gnus 會(huì)新建一個(gè)buffer 讓我們寫信
To: 在這里添上收件人的 email
Subject: 在這里寫上標(biāo)題
From: Brep <brep@example.com>
--text follows this line-- 千萬(wàn)不要?jiǎng)h除這一行
寫完信后 C-c C-c 發(fā)出, 不想要了就 C-c C-k 。
大功告成了嗎?
現(xiàn)在我們已經(jīng)完成基本任務(wù)了,但是大功告成了嗎?
沒有!苦難才剛剛開始......
我看到一篇很好的帖子,怎么才能保存下來?
我想備份自己發(fā)出的所有信件,怎么辦?
我想刪除信箱里的信件,怎么辦?
我的聯(lián)系人很多,我想建個(gè)地址簿,怎么辦?
我想把不同的人發(fā)來的信,分別放在不同的信箱里,怎么辦?
給帖子加標(biāo)記
你可能已
經(jīng)注意到了,當(dāng)你讀過一個(gè)帖子之后, Gnus 會(huì)自動(dòng)在帖子的最左邊加上一個(gè) R ,這就是標(biāo)記。這些標(biāo)記有些是我們自己加上的,有些是 Gnus
自動(dòng)加上的。標(biāo)記不止 R 一個(gè),還有很多符號(hào)被 Gnus 用來當(dāng)作標(biāo)記符號(hào)。這些標(biāo)記表明了帖子的狀態(tài),比如 R 表示這個(gè)帖子你已經(jīng)讀過了。
現(xiàn)
在我們來看看常見的標(biāo)記是什么意思。標(biāo)記分為兩大類,一類是“已讀(read)”標(biāo)記,一般用字母表示,比如 R, r, O, E
等等;另一類是“未讀(unread)”標(biāo)記,一般用特殊符號(hào)表示,比如 !, ?,
*等等。標(biāo)記的數(shù)量比較多,但我們只要了解常見的幾個(gè)標(biāo)記是什么意思就行了。
Gnus
之所以要把帖子分為“已讀”和“未讀”兩類,是因?yàn)閷?duì)這兩類帖子,Gnus
采取的處理方式不同。如果一個(gè)帖子別標(biāo)記為“已讀”,那么當(dāng)你離開這個(gè)group(用 q
命令)以后,下次再進(jìn)入的時(shí)候,你就不會(huì)再見到它了(除非你要求gnus
把老帖翻出來給你看),只有那些被標(biāo)記為“未讀”的帖子和新帖才會(huì)顯示給你看。
已讀標(biāo)記
- R
- 這個(gè)符號(hào)表示這篇帖子你的確已經(jīng)讀過了,每次你讀完一篇帖子之后, Gnus 就會(huì)自動(dòng)加上這個(gè)標(biāo)記。
- r
- 這個(gè)標(biāo)記表示是你自己手動(dòng)把帖子標(biāo)記為已讀的,但實(shí)際上你可能并沒讀過。你可以用d 命令加這個(gè)標(biāo)記。
- O
- 表示這是個(gè)老帖,上次進(jìn)來的時(shí)候你已經(jīng)讀過了。那么怎么才能看到老貼呢,用 / o 命令,就可以把所有老貼翻出來看。
未讀標(biāo)記
- !
- 保
留(ticked)標(biāo)記,帶有這個(gè)標(biāo)記的帖子將一直保持可見,如果你對(duì)某個(gè)貼子感興趣,想留著以后讀,可以加上這個(gè)標(biāo)記,用 !
命令就行了。但是請(qǐng)注意,并不是說這種帖子就永久保留下來了,如果這個(gè)帖子被從管理員從 nntp 服務(wù)器上刪除了,那么你就再也看不到它了。
nntp 服務(wù)器按照相應(yīng)的設(shè)置,定期刪除過期( expired )的老貼。
- ?
- 休眠(dormant)標(biāo)記,這個(gè)標(biāo)記比較有意思,所謂一個(gè)帖子進(jìn)入“休眠狀態(tài)”,指的是除非有人跟帖,否則你以后不會(huì)見到這個(gè)帖子,也就是說,平常這個(gè)帖子和已讀沒有差別,但是一旦有人跟帖,它就會(huì)跳出來,用 ? 命令可以加上這個(gè)標(biāo)記。
- 空格
- 如果一個(gè)帖子前面什么符號(hào)也沒有,就表示這是一個(gè)“未讀”的帖子。
清除所有標(biāo)記
用 M c 或者 Meta-u 清除所有標(biāo)記,也就是說標(biāo)記為“未讀(unread)”。
保存有價(jià)值的帖子
要想永久保存有價(jià)值的帖子,也就是說把帖子拷貝到自己的機(jī)器上保存起來,那么可以打開 gnus 的 cache 功能,在 .gnus.el 中加入:
(setq gnus-use-cache 'passive)
以后看到有價(jià)值的帖子,只要按下 * 鍵,這篇帖子就會(huì)被拷貝到本地的 cache 中保存起來,這樣即使服務(wù)器那邊刪除了這篇帖子,也沒關(guān)系了。如果你又不想要了,用 Meta-* 就可以把帖子從緩存中刪掉。
如果你想查看自己保存在緩存里的帖子,只要在 summary buffer 中用 'Y c' 命令即可。
郵件分類
可能你每天都要收到大量的郵件,有的是親朋好友寄來的,有的是你訂閱的maillist 寄來的。如果這些郵件都放在 mail.misc 這一個(gè)組里,那么很快這里就會(huì)擁擠不堪了,說不定有些重要的信件會(huì)被漏看。
在 Gnus 里,我們可以對(duì)收到的郵件進(jìn)行分類,比如把所有來自 tsinghua.edu.cn 的信都放在 mail.tsinghua 這個(gè)組里。我們可以這樣做:
首
先我們建一個(gè) mail.tsinghua 組,在 Group buffer 里鍵入 G m , 然后輸入 "mail.tsinghua",
接著系統(tǒng)會(huì)讓我們選擇 Method,此時(shí)輸入"nnfolder",這樣 mail.tsinghua 這個(gè)組就建立好了。
然后我們?cè)O(shè)置 nnmail-split-methods 變量,在 .gnus.el 中加入:
(setq nnmail-split-methods
'(("mail.tsinghua" "^From:.*tsinghua.edu.cn")
("mail.misc" "")))
這
樣以后凡是來自 tsinghua.edu.cn 的信件都會(huì)被放到 mail.tsinghua 這個(gè)組里去。這個(gè)變量的值是一個(gè)由 list
組成的 list,每個(gè) list 由兩個(gè)部分組成,前面的是組名,比如"mail.tsinghua", 后面的是個(gè)正則表達(dá)式, Gnus
會(huì)按這個(gè)正則表達(dá)式的要求到郵件里去搜索,然后把找到的郵件放在指定的組里面。
這是一種簡(jiǎn)單的分類方式,如果你覺得不過癮,可以試試 nnmail-split-fancy,那是一種更靈活的分類方式。
需要注意的一點(diǎn)是,我們剛才用的術(shù)語(yǔ)都是“組(group)”,而沒有說“郵件夾”。實(shí)際上,在 Gnus 里面組就是郵件夾,郵件夾就是組,我們說過, Gnus 采用同樣的方式處理信件和新聞,因此它并不對(duì)組和郵件夾進(jìn)行區(qū)分。
既然是 group,那么你就可以取消訂閱,假如你把女朋友的來信都放在mail.lovers 組里面,隨后不小心 unsubscribe 了這個(gè)組,那么你就讀不到她們的來信了,要是你的女朋友跟你分了手,千萬(wàn)別怪 Gnus,就像 Gnus 的手冊(cè)里說的:
Gnus gives you all the opportunity you could possibly want for shooting yourself in the foot.
保存自己發(fā)送的郵件
基本上所有的郵件客戶端都有一個(gè)“已發(fā)送郵件”或是“ sent ”的郵件夾,你自己寫的信發(fā)送出去的同時(shí),都會(huì)在這里都有一個(gè)備份,因?yàn)槲覀冇袝r(shí)候需要看看自己發(fā)出去的信件。
在 Gnus 里做到這一點(diǎn)很容易,而且它還可以自動(dòng)把你發(fā)出去的郵件分分類,比如把發(fā)出去的信放在一個(gè)組里,把你在 newsgroup 里 post 的帖子放在另一個(gè)組里。
現(xiàn)在我們看看怎么做到這一點(diǎn),比如我們想把自己發(fā)的信備份到 mail.sent.mail 組里,把自己 post 的帖子備份到在 mail.sent.news 組里,那么首先我們建立這兩個(gè)組:
在 group buffer 里鍵入 G m ,然后輸入組名"mail.sent.mail", 接著是輸入 "nnfolder", 這個(gè)組就建好了,然后用同樣的方式建立"mail.sent.news"組。
最后在.gnus.el 里加入:
(setq gnus-message-archive-group
'((if (message-news-p)
"nnfolder:mail.sent.news"
"nnfolder:mail.sent.mail")))
搞定了。
刪除郵件
當(dāng)你想刪除一個(gè)郵件的時(shí)候,你先得搞清楚它是個(gè) news 還是個(gè) mail, 因?yàn)槟闶菦]有權(quán)力刪除新聞組里的文章的,就象你上 BBS 的時(shí)候一樣,就算你看到一篇不爽的帖子,你也刪不了它,除非你是版主。
在
這里我還要多一句嘴, newsgroup 管理的不像 bbs 那樣嚴(yán)格, bbs
的每個(gè)版都有若干版主進(jìn)行管理,刪除無關(guān)的文章,封禁不按規(guī)矩發(fā)帖的人等等,象 joke 這種大板,有8個(gè)版主嚴(yán)陣以待,隨時(shí)準(zhǔn)備刪貼封人。
newsgroup 是沒有版主管理的,一般只有 nntp 服務(wù)器的管理員才有刪帖的權(quán)力,但是一個(gè) nntp 服務(wù)器上有成千上萬(wàn)的
group,管理員才沒時(shí)間管刪帖這種事兒呢,他們一般是制定一些規(guī)則,讓系統(tǒng)自動(dòng)刪除一些過期的帖子。因此,如果你在 newsgroup
上發(fā)了個(gè)垃圾帖子,它就有可能在那里呆上好幾年。
正因?yàn)槿绱耍覀冊(cè)?
newsgroup
上發(fā)帖子一定要慎重,不要發(fā)垃圾郵件什么的。更嚴(yán)重的是,如果你發(fā)了這種郵件,那么訂閱這個(gè)組的人就會(huì)認(rèn)為你很不禮貌,不懂規(guī)矩,他們可能就會(huì)在自己的
Gnus 里增加一條規(guī)則,從此以后凡是你發(fā)表的帖子,他們都不下載、不看。
好了,言歸
正傳,我們談?wù)勗趺磩h除郵件。有兩種方法可以刪除郵件,一種是使用郵件專用命令` B DEL',
也就是現(xiàn)鍵入'B',然后再按'Delete'鍵,這時(shí)系統(tǒng)會(huì)詢問你是否真的要?jiǎng)h除什么的,回答 yes 就可以了。但是這種方法太暴力了,在Gnus
里有一種更好的方法刪除郵件,那就是給郵件加上“保質(zhì)期”,也就是說,讓Gnus
替你干刪除郵件這個(gè)活兒,它會(huì)忠實(shí)地按照你的要求,刪除“過了保質(zhì)期”的郵件。
怎樣給郵件加上“保質(zhì)期”呢,很簡(jiǎn)單,在郵件組的 summary buffer 里,用 E 鍵就可以給光標(biāo)所在的郵件貼上 expirable 的標(biāo)簽,此時(shí)帖子前面會(huì)出現(xiàn)一個(gè)字母 E 作為標(biāo)記,然后你就不用管了,到了期限, gnus 就會(huì)自動(dòng)刪除它們。
你也可以用 E 命令,給新聞組里的帖子加上 expirable 的標(biāo)簽,但是這毫無意義,因?yàn)椴徽撌悄氵€是 Gnus 都無權(quán)刪除新聞組里的帖子。
Gnus 默認(rèn)的保質(zhì)期是7天,如果你覺得時(shí)間不合適,可以自己設(shè)置,更改變量
nnmail-expiry-wait 的值就行了,在 .gnus.el 里加入:
(setq nnmail-expiry-wait 3)
這樣就把保質(zhì)期設(shè)成3天了。
你還可以給不同的組設(shè)置不同的保質(zhì)期,象下面這樣:
(setq nnmail-expiry-wait-function
(lambda (group)
(cond ((string= group "mail.tsinghua")
31)
((string= group "mail.misc")
3)
((string= group "mail.lovers")
'never)
(t
6))))
這
樣就把 mail.tsinghua 這個(gè)組的保質(zhì)期設(shè)為31天, mail.misc 組設(shè)為3天等等。除了數(shù)字,還有另外兩個(gè)符號(hào)可以用,一個(gè)是
immediate ,表示立即刪除標(biāo)為過期的郵件;另一個(gè)是 never ,表示永不刪除過期的郵件,“如果你一定要加個(gè)期限, Gnus
希望是一萬(wàn)年。”
地址簿
如果你的聯(lián)系人比較多,沒辦法全部記住這些人的 email 地址,想建個(gè)地址簿,該怎么辦呢?
有兩個(gè)種方法可以完成這個(gè)任務(wù),一種是簡(jiǎn)單的,但是不太靈活;另一種麻煩點(diǎn)兒,但是功能很強(qiáng)。
先說簡(jiǎn)單的,實(shí)際上這是一種很古老的方法了,那就是采用 mail alias (地址別名),你只要把聯(lián)系人的郵件地址和別名都寫在 ~/.mailrc 文件里就行了,語(yǔ)法很簡(jiǎn)單,每個(gè)聯(lián)系人占一行,像下面這樣:
alias brep "Brep <brep@newsmth.org>"
alias heyyy "和伊有約 <heyyy@who.knows.where>"
alias EOF "EOF <EOF@god.knows>"
alias ilovecpp "ilovecpp <ilovecpp@please.tellme.ifyouknow>"
發(fā)信的時(shí)候,在 To: 后面輸入別名,比如 heyyy,然后按空格鍵, Gnus 會(huì)自動(dòng)把全名替你插進(jìn)去。
然后我們?cè)僬f復(fù)雜點(diǎn)兒的,其實(shí)也不復(fù)雜,只是麻煩點(diǎn)兒,要自己去下載一個(gè)軟件包,到這里:
http://bbdb.sourceforge.net/
去下載一個(gè)叫做 bbdb 的軟件包,全名是 "Insidious Big
Brother Database"。不知怎么搞的,現(xiàn)在一提數(shù)據(jù)庫(kù)我就開始反胃,不過這個(gè) bbdb 只是個(gè) Emacs 擴(kuò)展,全都是用
elisp 寫成的,并不是那種巨無霸似的操作繁瑣的數(shù)據(jù)庫(kù)管理系統(tǒng)。bbdb 很小,壓縮包只有300多 k 。 bbdb
只是建立了一個(gè)~/.bbdb 文件,然后把你的聯(lián)系人每個(gè)一行地寫在里面罷了,這是個(gè)純文本文件,不過最好不要自己編輯這個(gè)文件,可以用 bbdb
的命令往里添加聯(lián)系人。
下載回來以后解開,然后 make 一下,象這樣:
$ tar xzf bbdb-2.35.tar.gz
$ cd bbdb-2.35
$ ./configure --with-emacs=emacs --with-gnus-dir=/usr/share/emacs/23.0.0/lisp/gnus/
$ make gnus
然后把 bbdb-2.35 目錄下的 lisp 子目錄整個(gè)扔到 site-lisp 下面就行了:
$ cp -r lisp/ /usr/share/emacs/23.0.0/site-lisp/
還有文檔,如果你要看的話也要自己裝:
$ cd texinfo/ && make
$ cp bbdb.info /usr/share/info
$ cd /usr/share/info
$ install-info bbdb.info
如果你覺得太麻煩了,也可以解開壓縮包后,直接把 lisp/ 子目錄整個(gè)扔到 site-lisp 下面, bbdb 的手冊(cè)中說可以這樣,不過我沒試過。
好了,把下面這些寫在 .gnus.el 里面:
(require 'bbdb)
(bbdb-initialize 'gnus 'message)
;; bbdb 自己檢查你填寫的電話是否符合北美標(biāo)準(zhǔn),
;; 如果你不是生活在北美,應(yīng)該取消這種檢查
(setq bbdb-north-american-phone-numbers-p nil)
;; 把你的 email 地址告訴 bbdb
(setq bbdb-user-mail-names
(regexp-opt '("brep@example.com"
"brep@newsmth.org")))
;; 補(bǔ)全 email 地址的時(shí)候循環(huán)往復(fù)
(setq bbdb-complete-name-allow-cycling t)
;; No popup-buffers
(setq bbdb-use-pop-up nil)
然后重新啟動(dòng) Gnus, 或者是在 Group buffer 中用 r 鍵,讓 Gnus 重新讀入~/.gnus.el
bbdb
使用起來很簡(jiǎn)單,第一次用的時(shí)候,要用"M-x bbdb-create"命令創(chuàng)建聯(lián)系人,此時(shí) bbdb 會(huì)問你一些相關(guān)的問題,比如聯(lián)系人的
Name, company, Network Address(這里要添 email 地址)等等,你如實(shí)回答就是了。然后 bbdb
會(huì)創(chuàng)建一個(gè)~/.bbdb 文件,并把你的聯(lián)系人加進(jìn)去。
以后你可以隨時(shí)用"M-x bbdb-create"命令添加聯(lián)系人,也可以用 `M-x bbdb RET RET' 命令讓 bbdb 把所有聯(lián)系人顯示給你看。
不過, bbdb 最方便的地方在于你寫信的時(shí)候,只要在 To: 面用 TAB 鍵, bbdb 就會(huì)把聯(lián)系人替你填好,如果不對(duì),就繼續(xù)按 TAB 鍵, bbdb 會(huì)填下一個(gè),循環(huán)往復(fù)。
還有一個(gè)方便的地方,如果你在 Summary buffer 中的某個(gè)郵件或帖子上按 : 建, bbdb 將自動(dòng)把發(fā)信人替你加到地址簿里,方便吧!
結(jié)束語(yǔ)
說了這么多,也只是把Gnus最基本的功能介紹了一下,實(shí)際上,Gnus還有很多高級(jí)的功能可以發(fā)掘。那就去讀 Gnus 的 manual 吧,我覺得 Gnus 的手冊(cè)寫的真不錯(cuò),語(yǔ)言詼諧幽默,讀起來趣味盎然。
當(dāng)你用了一段時(shí)間 Gnus 以后,你就很難再離開它了,那時(shí)候你就會(huì)理解下面這句話:
No Gnus is bad news.