howm が生き残る道
Table of Contents
Last modified: 20240923T1041+0900
1. howm
howmは emacsのメモツールの中でも、比較的古くからあるもので、私も2012年から4年間ほど使わせてもらいました。私が知る限り、当時は詳細なマニュアルがなく、カスタマイズの方法がわかりにくかったこともあって、次第に使わなくなっていました。その後、org-roamやdenoteの登場で、メモツールとしては、私の中で、完全に過去のものとなっていました。
最近、まだ開発が続いていることを知って、再インストールしてみると、以前にはなかった詳細なマニュアルが作られていて、カスタマイズの方法もわかりやすくなっていました。
しかし、メモの管理は org-roamやdenoteがありますし、スケジュール管理は org-agendaに一本化しているので、いまさら使い道はないかなと思っていたのですが、意外にも、生き残る道があることがわかりました。それは、検索のプラットフォームとしてです。
2. howmにすべてのテキストファイルを検索させる
ポイントは、 howm-search-path
に、メモ、プライベート日誌、公開用日誌など、ありとあらゆるテキストファイルの置き場所を入れてしまうことです。例えば私の場合だと次のようになりますが、これ以外にもテキストファイルがある場所は、全部入れておきましょう。
(setq howm-search-path '("~/Dropbox/org/" "~/Dropbox/journal/" "~/Dropbox/memo-local/"))
こうすることで、 M-x howm_menu
でメニューを起動し、 s
で検索文字列を入力すると、一瞬で、これまで書いたほぼすべてのテキストファイルが検索され、結果がジャンプ可能なリストで表示されます。私の場合、この3つのディレクトリには、合計12,000個ほどのファイルがありますが、この程度であれば体感で0.5秒ほどです。
3. howm-menu-fileの中身
howm-menu-fileには、Dropbox/dotfileの中に置いた howm_menu.txt を指定しています。その中身は以下の通りです。
Create : %"c" [New] Search : %"s"[String] %"g"[Regexp] %"o"[Occur] Show : %"a"[All] %"l"[Recent] %"A"[Around] %"."[Today] %":"[Yesterday] %"h"[History]
howmのオリジナルのメニューは、マニュアルが整備されていなかった時代に、使い方のヒントになるようなことがたくさん書かれていて、助けにはなったのですが、それを使い続けるにはやや煩雑な印象がありました。今回は思い切って検索に特化したメニューにしてみました。重要なのは2行目の検索です。一行目は新規作成用、3行目は、メモのリスト表示用ですが、実際には使いません。
実用上は、このメニューを開くのも面倒なときには、 C-c , s
ですぐに検索に入ることができます。
4. howmの未来は明るい
もともとhowmは、裏でgrepをぶん回すパッケージなのですが、PC性能が向上したり、ripgrepのような高速grepが開発されたりして、時代はhowmに味方しているとも言えます。強力で柔軟なハイパーリンクや、ユニークな発想のスケジュール管理機能もありますから、これからemacsを使ったメモ管理を始める人は、howmも選択肢の1つかもしれません。
5. 設定例
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; howm ;; (require 'howm) (setq howm-menu-lang 'en) (setq howm-directory "~/Dropbox/howm/") (setq howm-keyword-file "~/Dropbox/howm/.keys") (setq howm-history-file "~/Dropbox/howm/.history") (setq howm-menu-file "~/Dropbox/dotfile/howm_menu.txt") (setq howm-search-other-dir t) (setq howm-search-path '("~/Dropbox/org/" "~/Dropbox/journal/" "~/Dropbox/memo-local/")) (setq howm-view-use-grep t) (setq howm-view-grep-command "rg") (setq howm-keyword-case-fold-search t) (setq howm-view-grep-option "-nH --no-heading --color never") (setq howm-view-grep-extended-option nil) (setq howm-view-grep-fixed-option "-F") (setq howm-view-grep-expr-option nil) (setq howm-view-grep-file-stdin-option nil) (setq howm-file-name-format "%Y%m%dT%H%M%S.org") (add-hook 'howm-mode-hook 'howm-mode-set-buffer-name) (add-hook 'after-save-hook 'howm-mode-set-buffer-name)