2011年1月20日木曜日

emacs calfw.el その2

前日
で、大きなカレンダーを表示できるようにしたが、やっぱり、予定も入力したいので、やはり
で紹介されている emacs-lisp をちょっと修正した。

・ ~/.emacs
(require 'calfw)

(defvar my-howm-schedule-page "Jan  8, 2008")
(defun my-cfw-open-schedule-buffer ()
  (interactive)
  (let*
      ((date (cfw:cursor-to-nearest-date))
       (howm-items
        (howm-folder-grep
         howm-directory
         (regexp-quote my-howm-schedule-page))))
    (cond
     ((null howm-items) ; create
      (howm-create-file-with-title my-howm-schedule-page nil nil nil nil))
     (t
      (howm-view-open-item (car howm-items))))
    (goto-char (point-max))
    (unless (bolp) (insert "\n"))
    (insert
     (format "%s [%04d-%02d-%02d 00:00]@ "
             (calendar-date-string date t t)
             (calendar-extract-year date)
             (calendar-extract-month date)
             (calendar-extract-day date)))))

(add-hook 'howm-menu-hook
          '(lambda ()
             (local-set-key "k" 'calendar)
             (require 'calfw-howm)
             (cfw:install-howm-schedules)
             (local-set-key "Y" 'cfw:open-howm-calendar)
             (define-key cfw:howm-schedule-map (kbd "i") 'my-cfw-open-schedule-buffer)
             ))
my-howm-schedule-page」に設定している「Jan  8, 2008」は、現在の「diary」ファイルの先頭に入っている日付である。一応、これで、 「diary」ファイルを検索して挿入することができる。

形式は、「diary-insert-entry」で入る日付と、howm風日付の両方入れる。
Jan 20, 2011 [2011-01-20 00:00]@ ■
時間は、とりあえず「00:00」としておく。

これで、calfw howm calendar を連携できた、かな?。

0 件のコメント: