使用 Emacs 發送電子郵件和檢查日曆
去年,我給你們帶來了 2019 年的 19 天新生產力工具系列。今年,我將採取一種不同的方式:建立一個新的環境,讓你使用已用或未用的工具來在新的一年裡變得更有效率。
使用 Emacs 做(幾乎)所有的事情,第 1 部分
兩天前,我曾經說過我經常使用 Vim 和 Emacs,在本系列的 16 和 17 天,我講解了如何在 Vim 中做幾乎所有的事情。現在,Emacs 的時間到了!
![Emacs 中的郵件和日曆](/data/attachment/album/202002/26/103814gf7quq3sm2s8fl73.png "Mail and calendar in Emacs")
在深入之前,我需要說明兩件事。首先,我這裡使用默認的 Emacs 配置,而不是我之前寫過的 Spacemacs。為什麼呢?因為這樣一來我使用的就是默認快捷鍵,從而使你可以參考文檔,而不必將「原生的 Emacs」 轉換為 Spacemacs。第二,在本系列文章中我沒有對 Org 模式進行任何設置。Org 模式本身幾乎可以自成一個完整的系列,它非常強大,但是設置可能非常複雜。
配置 Emacs
配置 Emacs 比配置 Vim 稍微複雜一些,但以我之見,從長遠來看,這樣做是值得的。首先我們創建一個配置文件,並在 Emacs 中打開它:
mkdir ~/.emacs.d
emacs ~/.emacs.d/init.el
接下來,向內置的包管理器添加一些額外的包源。在 init.el
中添加以下內容:
(package-initialize)
(add-to-list 'package-archives '("melpa" . "<http://melpa.org/packages/>"))
(add-to-list 'package-archives '("org" . "<http://orgmode.org/elpa/>") t)
(add-to-list 'package-archives '("gnu" . "<https://elpa.gnu.org/packages/>"))
(package-refresh-contents)
使用 Ctrl+x Ctrl+s
保存文件,然後按下 Ctrl+x Ctrl+c
退出,再重啟 Emacs。Emacs 會在啟動時下載所有的插件包列表,之後你就可以使用內置的包管理器安裝插件了。輸入 Meta+x
會彈出命令提示符(大多數鍵盤上 Meta
鍵就是的 Alt
鍵,而在 MacOS 上則是 Option
)。在命令提示符下輸入 package-list-packages
就會顯示可以安裝的包列表。遍歷該列表並使用 i
鍵選擇以下包:
bbdb
bbdb-vcard
calfw
calfw-ical
notmuch
選好軟體包後按 x
安裝它們。根據你的網路連接情況,這可能需要一段時間。你也許會看到一些編譯錯誤,但是可以忽略它們。安裝完成後,使用組合鍵 Ctrl+x Ctrl+f
打開 ~/.emacs.d/init.el
,並在 (package-refresh-packages)
之後、 (custom-set-variables
之前添加以下行到文件中。 (custom-set-variables
行由 Emacs 內部維護,你永遠不應該修改它之後的任何內容。以 ;;
開頭的行則是注釋。
;; Set up bbdb
(require 'bbdb)
(bbdb-initialize 'message)
(bbdb-insinuate-message)
(add-hook 'message-setup-hook 'bbdb-insinuate-mail)
;; set up calendar
(require 'calfw)
(require 'calfw-ical)
;; Set this to the URL of your calendar. Google users will use
;; the Secret Address in iCalendar Format from the calendar settings
(cfw:open-ical-calendar "<https://path/to/my/ics/file.ics>")
;; Set up notmuch
(require 'notmuch)
;; set up mail sending using sendmail
(setq send-mail-function (quote sendmail-send-it))
(setq user-mail-address "[myemail@mydomain.com][9]"
user-full-name "My Name")
現在,你已經準備好使用自己的配置啟動 Emacs 了!保存 init.el
文件(Ctrl+x Ctrl+s
),退出 Emacs(Ctrl+x Ctrl+c
),然後重啟之。這次重啟要多花些時間。
使用 Notmuch 在 Emacs 中讀寫電子郵件
一旦你看到了 Emacs 啟動屏幕,你就可以使用 Notmuch 來閱讀電子郵件了。鍵入 Meta+x notmuch
,你將看到 notmuch 的 Emacs 界面。
![使用 notmuch 閱讀郵件](/data/attachment/album/202002/26/103829rz5jk460g9j57wlg.png "Reading mail with Notmuch")
所有加粗的項目都是指向電子郵件視圖的鏈接。你可以通過點擊滑鼠或者使用 tab
鍵在它們之間跳轉並按回車來訪問它們。你可以使用搜索欄來搜索 Notmuch 的資料庫,語法與 Notmuch 命令行上的語法 相同。如果你願意,還可以使用 [save]
按鈕保存搜索以便未來使用,這些搜索會被添加到屏幕頂部的列表中。如果你進入一個鏈接就會看到一個相關電子郵件的列表。你可以使用箭頭鍵在列表中導航,並在要讀取的消息上按回車。按 r
可以回復一條消息,f
轉發該消息,q
退出當前屏幕。
你可以通過鍵入 Meta+x compose-mail
來編寫新消息。撰寫、回復和轉發都將打開編寫郵件的界面。寫完郵件後,按 Ctrl+c Ctrl+c
發送。如果你決定不發送它,按 Ctrl+c Ctrl+k
關閉消息撰寫緩衝區(窗口)。
使用 BBDB 在 Emacs 中自動補完電子郵件地址
![在消息中使用 BBDB 地址](/data/attachment/album/202002/26/103853c52a4iqnnnerr27a.png "Composing a message with BBDB addressing")
那麼通訊錄怎麼辦?這就是 BBDB 發揮作用的地方。但首先我們需要從 abook 導入所有地址,方法是打開命令行並運行以下導出命令:
abook --convert --outformat vcard --outfile ~/all-my-addresses.vcf --infile ~/.abook/addresses
Emacs 啟動後,運行 Meta+x bbdb-vcard-import-file
。它將提示你輸入要導入的文件名,即 ~/all-my-address.vcf
。導入完成後,在編寫消息時,可以開始輸入名稱並使用 Tab
搜索和自動完成 「to」 欄位的內容。BBDB 還會打開一個聯繫人緩衝區,以便你確保它是正確的。
既然在 vdirsyncer 中已經為每個地址都生成了對應的 .vcf 文件了,為什麼我們還要這樣做呢?如果你像我一樣,有許多地址,一次處理一個地址是很麻煩的。這樣做,你就可以把所有的東西都放在 abook 里,做成一個大文件。
使用 calfw 在 Emacs 中瀏覽日曆
![calfw 日曆 ](/data/attachment/album/202002/26/103952x9n0pun5gg5ginn5.png "calfw calendar")
最後,你可以使用 Emacs 查看日曆。在上面的配置中,你安裝了 calfw 包,並添加了一些行來告訴它在哪裡可以找到要載入的日曆。Calfw 是 「 Emacs 日曆框架 」的簡稱,它支持多種日曆格式。我使用的是谷歌日曆,這也是我放在配置中的鏈接。日曆將在啟動時自動載入,你可以通過 Ctrl+x+b
命令切換到 cfw-calendar 緩衝區來查看日曆。
Calfw 提供日、周、雙周和月視圖。你可以在日曆頂部選擇視圖,並使用箭頭鍵導航日曆。不幸的是,calfw 只能查看日曆,所以你仍然需要使用 khal 之類的工具或通過 web 界面來添加、刪除和修改事件。
這就是 Emacs 中的郵件、日曆和郵件地址。明天我會展示更多。
via: https://opensource.com/article/20/1/emacs-mail-calendar
作者:Kevin Sonney 選題:lujun9972 譯者:lujun9972 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive