12
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

EmacsAdvent Calendar 2016

Day 16

org-modeのタスクをリマインダーに渡す

Last updated at Posted at 2016-12-16

この記事ではEmacsのorg-modeからリマインダー.app(Mac OS X or iPhone)にタスクを渡す方法について紹介します。

私はタスク管理にorg-modeを使うのですが、最近は買い物リストもorgに書き込んでいます。
イオンやイトーヨーカドーに行くときに、Macを持っていくわけにはいきません。

そこで、Mac OS Xのリマインダー.appにその買い物リストを転送して、
iCloud経由でiPhoneと同期させ、iPhoneの「リマインダー」アプリで、その買い物リストを見るようにしています。

セットアップ

  • reminders-cliをインストールする
  • 後述するhoge.elを追加する

reminders-cliを使うと、コマンドライン操作でタスクをリマインダー.appに登録することができます。
そして、下記のelispを使うことで、Emacsからリマインダー.appにタスクが追加できるようになります。

hoge.el
(defun add-org-task-to-reminder ()
  (interactive)
  (when (eq major-mode 'org-mode)
    (setq reminder-list-name "リマインダー")
    (setq element (org-element-at-point))              ;; カーソル位置のタスク(エレメント)を取得する
    (setq title (org-element-property :title element)) ;; そのタスク(エレメント)から名前を取得する
    (setq command (format "reminders add %s %s" reminder-list-name title))
    (shell-command-to-string command)))

上記のコードは、Org Element APIでタスクの名前を取得し、reminders-cliをシェルで実行します。

使い方

Emacsで以下の操作をして、リマインダー.appにタスクを追加します。

  • リマインダー.appに登録したいorg-modeのタスクにカーソルを合わせる
  • M-x add-org-task-to-reminder を実行する

今後の課題

  • reminders-cliを改良して日時、優先順位の情報もコマンドラインでリマインダー.appに渡せるようにする
  • Emacsからリマインダー.appにタスクを渡す際に、リマインダー.appのリスト名をインタラクティブに指定できるようにする
  • Emacsから複数のタスクを一括でリマインダー.appに渡せるようにする
12
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?