DUICUO

Emacsを使ってメールを送信したりカレンダーを確認したりする

[[316262]]

2020 年にオープンソースで生産性を高める 20 の方法の 18 番目の記事では、Emacs テキスト エディターを使用して電子メールを管理し、スケジュールを表示する方法について説明します。

昨年、私は 2019 年に向けた 19 日間の新しい生産性向上ツール シリーズを紹介しました。今年は、これまで使用していたツールや使用していなかったツールを活用できる新しい環境を作り、新年に生産性を高めるという異なるアプローチを採用します。

Emacsで(ほぼ)すべてを行う パート1

2日前、私はVimとEmacsをよく使っていると書きました。このシリーズの16日目と17日目では、Vimでほぼすべての操作を行う方法を説明しました。さあ、いよいよEmacsの番です!

Emacsのメールとカレンダー

本題に入る前に、2点明確にしておきたいことがあります。まず、ここでは以前書いたSpacemacsではなく、デフォルトのEmacs設定を使用しています。なぜでしょうか?デフォルトのキーボードショートカットを使うことで、「ネイティブEmacs」をSpacemacs用に変換することなくドキュメントを参照できるからです。次に、このシリーズの記事ではOrgモードの設定は一切していません。Orgモード自体はほぼ完結したシリーズであり、非常に強力ですが、設定はかなり複雑になる場合があります。

Emacsの設定

Emacsの設定はVimの設定よりも少し複雑ですが、長い目で見れば価値があると思います。まず、設定ファイルを作成し、Emacsで開きます。

  1. mkdir ~/. emacs . d
  2. emacs ~ /.emacs.d/ init . el

次に、組み込みパッケージマネージャーにいくつかのパッケージソースを追加しますinit.elに以下のコードを追加してください。

  1. ( package - initialize )
  2. ( add - to - list 'package-archives ' ( "melpa" . "<http://melpa.org/packages/>" ))
  3. ( add - to - list 'package-archives ' ( "org" . "<http://orgmode.org/elpa/>" ) t )
  4. ( add - to - list 'package-archives ' ( "gnu" . "<https://elpa.gnu.org/packages/>" ))
  5. ( package - refresh - contents )

Ctrl+x Ctrl+sでファイルを保存し、 Ctrl+x Ctrl+cで終了してEmacsを再起動します。Emacsは起動時にすべてのプラグインパッケージのリストをダウンロードします。その後、組み込みのパッケージマネージャーを使用してプラグインをインストールできます。Meta Meta+xと入力するとコマンドプロンプトが開きます( MetaキーはほとんどのキーボードではAltキー、macOSではOptionです)。コマンドプロンプトでpackage-list-packagesと入力すると、インストール可能なパッケージのリストが表示されます。リストを順に選択し、 iキーを使用して以下のパッケージを選択します。

  1. bbdb
  2. bbdb - vcard
  3. calfw
  4. calfw - ical
  5. notmuch

パッケージを選択したら、「 xを押してインストールしてください。ネットワーク接続によっては時間がかかる場合があります。コンパイルエラーが表示される場合もありますが、無視してください。インストールが完了したら、 Ctrl+x Ctrl+fキーを押して~/.emacs.d/init.elを開き、次の行を(package-refresh-packages)の後、 (custom-set-variables ) の前に追加してください。 (custom-set-variables行はEmacsによって内部的に管理されているため、それ以降の行は変更しないでください。 ;;で始まる行はコメントです。)

  1. ;; Set up bbdb
  2. ( require 'bbdb)
  3. (bbdb-initialize ' message )
  4. ( bbdb - insinuate - message )
  5. ( add - hook 'message-setup-hook ' bbdb - insinuate - mail )
  6. ;; set up calendar
  7. ( require 'calfw)
  8. (require ' calfw - ical )
  9. ;; Set this to the URL of your calendar . Google users will use
  10. ;; the Secret Address in iCalendar Format from the calendar settings
  11. ( cfw : open - ical - calendar "<https://path/to/my/ics/file.ics>" )
  12. ;; Set up notmuch
  13. ( require 'notmuch)
  14. ;; set up mail sending using sendmail
  15. (setq send-mail-function (quote sendmail-send-it))
  16. (setq user-mail-address "[[email protected]][9]"
  17. user-full-name "My Name")

これで、独自の設定でEmacsを起動する準備が整いました。init.elファイルinit.el保存( Ctrl+x Ctrl+s )し、Emacsを終了( Ctrl+x Ctrl+c )して再起動してください。再起動には少し時間がかかります。

Notmuchを使ってEmacsでメールを読み書きする

Emacsのスタート画面が表示されたら、Notmuchを使ってメールを読むことができます。Meta Meta+x notmuchと入力すると、Notmuch Emacsのインターフェースが表示されます。

NotMuchを使ってメールを読む

太字で表示されている項目はすべてメールビューへのリンクです。マウスをクリックするか、 tabキーで項目間を移動してEnterキーを押すことでアクセスできます。検索バーを使用して、Notmuchのコマンドラインと同じ構文でNotmuchのデータベースを検索できます。必要に応じて、 [save]ボタンを使用して検索内容を保存し、後で使用することもできます。保存した検索内容は画面上部のリストに追加されます。リンクをクリックすると、関連するメールのリストが表示されます。矢印キーを使用してリスト内を移動し、読みたいメッセージでEnterキーを押します。メッセージに返信するにはrキー、メッセージを転送するにはf 、現在の画面を終了するにはqを押します。

Meta+x compose-mailと入力すると、新しいメッセージを作成できます。コンパイル、返信、転送を行うと、メール作成インターフェースが開きます。メッセージの作成が完了したら、 Ctrl+c Ctrl+cを押して送信します。送信しない場合は、 Ctrl+c Ctrl+kを押してメッセージ作成バッファ(ウィンドウ)を閉じます。

BBDBを使ってEmacsでメールアドレスを自動補完する

メッセージにBBDBアドレスを使用する

では、連絡先はどうでしょうか?ここでBBDBの出番です。まずは、abookからすべてのアドレスをインポートする必要があります。そのためには、コマンドラインを開き、次のエクスポートコマンドを実行します。

  1. abook -- convert -- outformat vcard -- outfile ~ /all-my-addresses.vcf --infile ~/ . abook / addresses

Emacsを起動したら、 Meta+x bbdb-vcard-import-file実行してください。インポートするファイル名( ~/all-my-address.vcfを入力するように求められます。インポートが完了すると、メッセージの作成時に名前を入力し、 Tab使って検索したり、「宛先」欄の自動補完を行ったりできるようになります。BBDBは連絡先バッファを開き、正しい名前であることを確認します。

vdirsyncer は既に各アドレスに対応する .vcf ファイルを生成しているので、なぜ再度生成する必要があるのでしょうか?私のようにアドレスがたくさんある場合、一つ一つ処理するのは面倒です。この方法を使えば、すべてを abook にまとめ、1つの大きなファイルを作成できます。

calfw を使用して Emacs でカレンダーを閲覧する

子牛カレンダー

最後に、Emacsを使ってカレンダーを表示できます。上記の設定では、calfwパッケージをインストールし、カレンダーを読み込む場所を指定するための行をいくつか追加しました。calfwとは… Emacs カレンダーフレームEmacs用カレンダーフレームワークこれは「cfw-calendar」の略で、複数のカレンダー形式をサポートしています。私はGoogleカレンダーを使っており、設定にリンクを追加しています。カレンダーは起動時に自動的に読み込まれ、 Ctrl+x+bコマンドでcfw-calendarバッファに切り替えて表示できます。

Calfwは、日次、週次、隔週、月次ビューを提供しています。カレンダー上部でビューを選択し、矢印キーで移動できます。ただし、Calfwはカレンダーのみを表示するため、イベントの追加、削除、変更にはKhaliなどのツールやWebインターフェースを使用する必要があります。

Emacs でのメール、カレンダー、メールアドレスの表示方法です。明日はもっと詳しく紹介します。