LoginSignup
29

More than 5 years have passed since last update.

calfwの活用について

Last updated at Posted at 2014-12-17

Emacsにて、niceなカレンダービューを提供する calfw.el の近況と、いくつかの活用方法についてご紹介します。

calfw.el とは?

calfw.elは、Emacsのバッファ上で、下図のような操作可能なカレンダーを表示するプログラムです。

calfw画面イメージ

期間スケジュールの表示や祝日、月だけでなく1/2週間のビュー切り替えなど、よくあるカレンダーアプリと同様の動きが出来ます。もちろん、Emacsとして期待される、キーバインドや色などカスタマイズなども可能です。詳細は以下の紹介記事やgithubのREADMEを参照してください。

ちなみに、Vimでもitchynyさんのすごいカレンダーがあります。

近況

目に見える大きな機能は2011年のリリース当時からあまり変わっていません。いろいろご要望はいただくのですが、なかなか手が付けられずにいます。すみません。

昨年8月にすごいPull-Requestを頂きまして、内部構造がかなりパワーアップしました。この修正により、スケジュールを格納するイベントオブジェクトを定義することによって、スケジュールの時刻を格納することが出来るようになり、また単発のスケジュールと期間スケジュールを統一して扱えるようになりました。すごく自然です。断然スケジュールのソースを書きやすくなりました。

;; This structure defines calendar events.
(defstruct cfw:event
  title       ; event title [string]
  start-date  ; start date of the event [cfw:date]
  start-time  ; start time of the event (optional)
  end-date    ; end date of the event [cfw:date] (optional)
  end-time    ; end of the event (optional)
  description ; event description [string] (optional)
  location    ; location [strting] (optional)
  source      ; [internal] source of the event
  )

READMEでは、まだこの部分のドキュメントが反映されていませんが、興味のある方はPRのコメントを参照してください。

活用例

標準で Emacs 標準のdiaryとorgmode、howmとiCalendar(※繰り返しは未対応)に対応しています。Google Calendarとの連携は、sheepheadさんのこちらの記事を参照してください。

その他、いくつかの活用をご紹介します。

git log の可視化

gitの作業ログをカレンダーで見れると、自分の作業の振り返りにもなって便利です。
以下のgistのコードをインストールして、お手持ちのgitのプロジェクト上で M-x cfw:git-open-calendar すると、カレンダーにコミットログが表示されます。

calendar for gitlog

Web API との接続

最近はデータがWeb上にあることも多いと思いますので、よく使うAPIとつなげてカレンダーに表示することでとても生活が豊かになります。

たとえば、下のgistのように、しょぼいカレンダーから番組のデータを取って来て、Emacsに表示してみると、以下のようになります。

calendar for syoboi

これで、コーディング中でも、サッと見たい情報を確認できて便利ですね。

現状ではcalfwのデータソースに非同期更新用のAPIが無いため、ちょっと無理矢理感がありますが、そのうちスマートなAPIを用意するかも知れません。

他にも、日付と関連付くものなら何でも表示できますので、是非Emacsをお使いのみなさんも試してみてください。

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
29