02.26 使用 Emacs 發送電子郵件和檢查日曆

使用 Emacs 發送電子郵件和檢查日曆

在 2020 年用開源實現更高生產力的二十種方式的第十八篇文章中,使用 Emacs 文本編輯器管理電子郵件和查看日程安排。-- Kevin Sonney(作者)


去年,我給你們帶來了 2019 年的 19 天新生產力工具系列。今年,我將採取一種不同的方式:建立一個新的環境,讓你使用已用或未用的工具來在新的一年裡變得更有效率。

使用 Emacs 做(幾乎)所有的事情,第 1 部分

兩天前,我曾經說過我經常使用 Vim 和 Emacs ,在本系列的 16 和 17 天,我講解了如何在 Vim 中做幾乎所有的事情。現在,Emacs 的時間到了!

使用 Emacs 發送電子郵件和檢查日曆

Emacs 中的郵件和日曆


在深入之前,我需要說明兩件事。首先,我這裡使用默認的 Emacs 配置,而不是我之前 寫過 的 Spacemacs 。為什麼呢?因為這樣一來我使用的就是默認快捷鍵,從而使你可以參考文檔,而不必將“原生的 Emacs” 轉換為 Spacemacs。第二,在本系列文章中我沒有對 Org 模式進行任何設置。Org 模式本身幾乎可以自成一個完整的系列,它非常強大,但是設置可能非常複雜。

配置 Emacs

配置 Emacs 比配置 Vim 稍微複雜一些,但以我之見,從長遠來看,這樣做是值得的。首先我們創建一個配置文件,並在 Emacs 中打開它:

<code>mkdir ~/.emacs.demacs ~/.emacs.d/init.el/<code>

接下來,向內置的包管理器添加一些額外的包源。在 init.el 中添加以下內容:

<code>(package-initialize)(add-to-list 'package-archives '("melpa" . "<http>"))(add-to-list 'package-archives '("org" . "<http>") t)(add-to-list 'package-archives '("gnu" . "<https>"))(package-refresh-contents)/<code>

使用 Ctrl+x Ctrl+s 保存文件,然後按下 Ctrl+x Ctrl+c 退出,再重啟 Emacs。Emacs 會在啟動時下載所有的插件包列表,之後你就可以使用內置的包管理器安裝插件了。輸入 Meta+x 會彈出命令提示符(大多數鍵盤上 Meta 鍵就是的 Alt 鍵,而在 MacOS 上則是 Option)。在命令提示符下輸入 package-list-packages 就會顯示可以安裝的包列表。遍歷該列表並使用 i 鍵選擇以下包:

<code>bbdbbbdb-vcardcalfwcalfw-icalnotmuch/<code>

選好軟件包後按 x 安裝它們。根據你的網絡連接情況,這可能需要一段時間。你也許會看到一些編譯錯誤,但是可以忽略它們。安裝完成後,使用組合鍵 Ctrl+x Ctrl+f 打開 ~/.emacs.d/init.el,並在 (package-refresh-packages) 之後、 (custom-set-variables 之前添加以下行到文件中。 (custom-set-variables 行由 Emacs 內部維護,你永遠不應該修改它之後的任何內容。以 ;; 開頭的行則是註釋。

<code>;; 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>");; Set up notmuch(require 'notmuch);; set up mail sending using sendmail(setq send-mail-function (quote sendmail-send-it))(setq user-mail-address "[[email protected]][9]"      user-full-name "My Name")/<https>/<code>

現在,你已經準備好使用自己的配置啟動 Emacs 了!保存 init.el 文件(Ctrl+x Ctrl+s),退出 Emacs(Ctrl+x Ctrl+c),然後重啟之。這次重啟要多花些時間。

使用 Notmuch 在 Emacs 中讀寫電子郵件

一旦你看到了 Emacs 啟動屏幕,你就可以使用 Notmuch 來閱讀電子郵件了。鍵入 Meta+x notmuch,你將看到 notmuch 的 Emacs 界面。

使用 Emacs 發送電子郵件和檢查日曆

使用 notmuch 閱讀郵件


所有加粗的項目都是指向電子郵件視圖的鏈接。你可以通過點擊鼠標或者使用 tab 鍵在它們之間跳轉並按回車來訪問它們。你可以使用搜索欄來搜索 Notmuch 的數據庫,語法與 Notmuch 命令行上的 語法 相同。如果你願意,還可以使用 [save] 按鈕保存搜索以便未來使用,這些搜索會被添加到屏幕頂部的列表中。如果你進入一個鏈接就會看到一個相關電子郵件的列表。你可以使用箭頭鍵在列表中導航,並在要讀取的消息上按回車。按 r 可以回覆一條消息,f 轉發該消息,q 退出當前屏幕。

你可以通過鍵入 Meta+x compose-mail 來編寫新消息。撰寫、回覆和轉發都將打開編寫郵件的界面。寫完郵件後,按 Ctrl+c Ctrl+c 發送。如果你決定不發送它,按 Ctrl+c Ctrl+k 關閉消息撰寫緩衝區(窗口)。

使用 BBDB 在 Emacs 中自動補完電子郵件地址

使用 Emacs 發送電子郵件和檢查日曆

在消息中使用 BBDB 地址


那麼通訊錄怎麼辦?這就是 BBDB 發揮作用的地方。但首先我們需要從 abook 導入所有地址,方法是打開命令行並運行以下導出命令:

<code>abook --convert --outformat vcard --outfile ~/all-my-addresses.vcf --infile ~/.abook/addresses/<code>

Emacs 啟動後,運行 Meta+x bbdb-vcard-import-file。它將提示你輸入要導入的文件名,即 ~/all-my-address.vcf。導入完成後,在編寫消息時,可以開始輸入名稱並使用 Tab 搜索和自動完成 “to” 字段的內容。BBDB 還會打開一個聯繫人緩衝區,以便你確保它是正確的。

既然在 vdirsyncer 中已經為每個地址都生成了對應的 .vcf 文件了,為什麼我們還要這樣做呢?如果你像我一樣,有許多地址,一次處理一個地址是很麻煩的。這樣做,你就可以把所有的東西都放在 abook 裡,做成一個大文件。

使用 calfw 在 Emacs 中瀏覽日曆

使用 Emacs 發送電子郵件和檢查日曆

calfw 日曆


最後,你可以使用 Emacs 查看日曆。在上面的配置中,你安裝了 calfw 包,並添加了一些行來告訴它在哪裡可以找到要加載的日曆。Calfw 是 “ Emacs 日曆框架(Calendar Framework for Emacs)”的簡稱,它支持多種日曆格式。我使用的是谷歌日曆,這也是我放在配置中的鏈接。日曆將在啟動時自動加載,你可以通過 Ctrl+x+b 命令切換到 cfw-calendar 緩衝區來查看日曆。

Calfw 提供日、周、雙週和月視圖。你可以在日曆頂部選擇視圖,並使用箭頭鍵導航日曆。不幸的是,calfw 只能查看日曆,所以你仍然需要使用 khal 之類的工具或通過 web 界面來添加、刪除和修改事件。

這就是 Emacs 中的郵件、日曆和郵件地址。明天我會展示更多。


via: opensource.com

作者: Kevin Sonney 選題: lujun9972 譯者: lujun9972 校對: wxy

本文由 LCTT 原創編譯, Linux中國 榮譽推出


分享到:


相關文章: