Emacs24+Howm+Org
Emacs24に移行したらHowmでエラーが出るようになったので、Howmのバージョンを上げる。
howm-1.4.0rc2はEmacs24に対応しているので、これをインストールする。ElispファイルをDropboxに置いて共有しているので、configureのオプションで置き場所を指定する。
$ ./configure --prefix=~/Dropbox/ --with-lispdir=~/Dropbox/share/emacs/lisp/
ついでにHowmのファイルをOrgで書くようにする。OrgとHowmでアウトラインに使う記号やキーバインディングが違うので、共存できるように設定しなければいけない。
;; HOWM (add-to-list 'load-path "~/Dropbox/share/emacs/lisp/howm") ; C-c , がOrgとぶつかるので、C-x , に変更。 (global-set-key "\C-x,," 'howm-menu) (setq howm-prefix "\C-x,") (autoload 'howm-menu "howm" "Hitori Otegaru Wiki Modoki" t) (setq howm-directory "~/Dropbox/Howm/") (setq howm-history-file "~/Dropbox/Howm/.howm-history") (setq howm-keyword-file "~/Dropbox/Howm/.howm-keys") ; 新しくメモを作る時は、先頭の「=タイトル」だけ挿入。 (setq howm-template "= %title%cursor\n\n") (add-hook 'howm-mode-hook (function (lambda () ; Orgは見出しに*を使う。Howmも*を使うようにできるが、そうすると今まで書いたメモがタイトル無しになって悲しいので、Howmは=のままにする。 ; outline-mode的には*と=の両方を見出しとして扱うようにする。Orgの中でoutline-modeの関数を呼んでいるところがあるため。 (setq outline-regexp "[*=]+") ; Dropboxでバックアップがあるので、バックアップファイルは作らなくてもいいだろう。 (set (make-local-variable 'backup-inhibited) t)))) (add-hook 'howm-after-save-hook (function (lambda () ; 内容が空の場合はファイルを削除する。 (if (= (point-min) (point-max)) (delete-file (buffer-file-name (current-buffer))))))) ; 完了済みのtodoを未完了に戻す。 (fset 'howm-revive-todo (lambda (&optional arg) "Keyboard macro." (interactive "p") (kmacro-exec-ring-item (quote ([1 19 46 13 6 23 19 58 13 backspace 2 2] 0 "%d")) arg))) ;; ORG ; .txtを全部org-modeにするのもアレなので、Dropbox/Howmの下の.howmか.txtのファイルのみorg-modeにする。 (add-to-list 'auto-mode-alist '("Dropbox/Howm/.+\\.howm$" . org-mode)) (add-to-list 'auto-mode-alist '("Dropbox/Howm/.+\\.txt$" . org-mode)) ; Dropbox/Howmの下でorg-modeで編集する場合はhowm-modeを追加。 (add-hook 'org-mode-hook (function (lambda () (if (string-match "Dropbox/Howm" buffer-file-name) (howm-mode)))))