$Id: README.ja.rd,v 1.116 2004/08/23 16:23:02 hira Exp $
Emacs で断片的なメモをどんどんとるための環境です. 分類機能はあえてつけません. かわりに, 全文検索とメモ間リンクが手軽にできるようにしました. 自由書式なので改宗も不要 :-)
(howm-mode)
こんなテンプレートが表示される
= ■ ←(タイトル欄) [2002-09-16 20:08] >>> /home/hira/elisp/howm/howm-mode.el ↑(作成日 & その前に見てたファイル)
次のように書くと, foo と bar がタイトル
= foo (… ほげほげ …) = bar (… ふがふが …)
正確な書式は,
(行頭)=(空白)(タイトル)(行末)
タイトルなしで, 単にメモの区切りとして使うだけでも OK
(… ほげほげ …) = (… ふがふが …) = (… へろへろ …)
goto リンク: ファイル(ディレクトリ)名 or 含まれる文字列
>>> ~/.emacs >>> /usr/src >>> ほげほげ
come-from リンク: 他のメモで「ふがふが」という文字列が出てきたら, ぜんぶこのメモへのリンクに
<<< ふがふが
Wiki 風リンク: goto と同じ. ただし「<<< へろへろ」がもしなければ作る.
[[へろへろ]]
たとえば, 「>>> emacs」ならこんな一覧
<<< emacs ← ずばりの come-from 宣言をしたメモ <<< emacs lisp ← 「emacs」を含む come-from を宣言したメモ <<< 自作 emacs lisp grep, ruby, emacs の regexp の違い ← 本文中に「emacs」を含むメモ emacs 用検索ツール?[2001-08-13] (新しい順) …
browse-url を使用. 必要なら適当に設定.
(setq browse-url-browser-function 'browse-url-mozilla)
(一覧モード)
Dired-X の使い方は, info dired-x 等を参照
v → 中身を見る (q → 戻る) d → 「消すぞ」マーク x → マークしたファイルたちを本当に消す
(予定表・todo)
メモ中に
[2002-10-20]+ ハイウェイ惑星 買おう
のように書いておくと, 一覧で見ることができます
覚書 (-)
[2002-10-20]- ハイウェイ惑星 買おう
沈むのを遅くするには, 猶予日数で指定(デフォルト 1 日)
[2002-10-20]-14 ハイウェイ惑星 買おう → 14 日間ぐらいは気にかけよう
todo (+)
[2002-10-20]+ ハイウェイ惑星 買うべし
浮きあがる速さは, 猶予日数で指定(デフォルト 7 日)
[2002-10-20]+14 ハイウェイ惑星 買うべし → 14 日間ぐらいのうちに
〆切 (!)
[2002-10-20]! ハイウェイ惑星 〆切
何日前から浮きはじめるかは, 猶予日数で指定(デフォルト 7 日)
[2002-10-20]!14 ハイウェイ惑星 〆切 → 14 日前ぐらいからぼちぼち
保留
[2002-10-20]~ ハイウェイ惑星 買おうか
何日周期で浮き沈みするかは, 猶予日数で指定(デフォルト 30 日)
[2002-10-20]!14 ハイウェイ惑星 買おうか → 14 日周期
予定 (@)
[2002-10-20]@ ハイウェイ惑星
済 (.)
[2002-10-20]. ハイウェイ惑星
例
[2002-10-20]+9 ほげほげ
の「+9」にカーソル置いてリターンたたくと, ミニバッファにメニューが出て…
そのままリターン → 「済」
[2002-10-20]. [2002-10-20]:+9 ほげほげ
x を入力 → 「cancel」
[2002-10-20]. cancel [2002-10-20]:+9 ほげほげ
- を入力 → 種類を覚書に変更
[2002-10-20]-9 ほげほげ
14 を入力 → 猶予日数を 14 日に変更
[2002-10-20]+14 ほげほげ
後ろめたければ, 猶予日数の長い「覚書」に
[2002-11-10]-10 ハイウェイ惑星
緊急ではないが重要なこと
[2002-11-10]-999 ●ハイウェイ惑星
目立たせたいこと
[2002-11-10] ★★ハイウェイ惑星
インストール先の変更例
./configure --with-lispdir=$HOME/elisp --prefix=$HOME
case 1: emacs 起動時に読み込む
(setq howm-menu-lang 'ja) (require 'howm)
case 2: はじめて C-c , , した時に読み込む
(setq howm-menu-lang 'ja) (global-set-key "\C-c,," 'howm-menu) (autoload 'howm-menu "howm" "Hitori Otegaru Wiki Modoki" t)
いずれも, もし「Cannot open load file」とかエラーが出るなら, 上記の前にこれを追加
(add-to-list 'load-path "/usr/share/emacs/site-lisp/howm/")
メモ貯めディレクトリ ~/howm/ を作成し, 同梱の ja/*.howm をそこにコピー
mkdir ~/howm cp ja/*.howm ~/howm
置き場に応じて, ↓のように記述
(add-to-list 'load-path "~/elisp/howm/")
お好みで, バイトコンパイル
cd ~/elisp/howm \emacs -batch -q --no-site-file --eval '(progn (add-to-list (quote load-path) ".") (byte-recompile-directory "." 0))'
お好みで, ~/.emacs に設定を追加 (→カスタマイズ)
;; 設定例 (define-key global-map [katakana] 'howm-menu) ; [カタカナ] キーでメニュー (setq howm-file-name-format "%Y/%m/%Y_%m_%d.howm") ; 1 日 1 ファイル (setq howm-keyword-case-fold-search t) ; <<< で大文字小文字を区別しない (setq howm-list-title t) ; 一覧時にタイトルを表示 (setq howm-menu-refresh-after-save nil) ; save 時にメニューを自動更新せず (setq howm-refresh-after-save nil) ; save 時に下線を引き直さない (setq howm-menu-expiry-hours 2) ; メニューを 2 時間キャッシュ (add-to-list 'auto-mode-alist '("\\.howm$" . rd-mode)) ; メモは rd-mode に
区別する場合
find ~/howm -name '*.howm' -print | xargs ruby -ne '$_ =~ /<<<\s+(.+)$/ and puts $1' | sort -u > ~/.howm-keys
区別しない場合
find ~/howm -name '*.howm' -print | xargs ruby -ne '$_ =~ /<<<\s+(.+)$/ and puts $1.downcase' | sort -u > ~/.howm-keys
~/.emacs(.emacs.el かも) で↓のように
(setq howm-directory "c:/cygwin/home/howm/")
font-lock のメッセージを抑制すると速くなるそう. thx > 笠原さん
(setq font-lock-verbose nil)
.emacs に以下を書いておかないと, Dired-X に C-x C-j を奪われます
(setq dired-bind-jump nil)
emacs21 なら使える?
(set-face-foreground 'action-lock-face "blue") ;; 下線のかわりに色つけ
リンク記号を変更する
;; 例: .emacs (howm ロードより前)に (setq howm-ref-header "==>") ; goto リンク (setq howm-keyword-header "<==") ; come-from リンク
リマインダの書式変更
@[2003/09/25]! → [2003/09/25]! @[2003/09/25] → [2003/09/25]- [2003/09/25]! → [2003/09/25]:! [2003/09/25] → [2003/09/25]
メモディレクトリに cd して,
find . -name '*.howm' -print | xargs -n 1 ruby -p -i.bak -e '$_.gsub!(%r~(@?)(\[[0-9]+/[0-9]+/[0-9]+\])([-+@!.]?)~){|s| if ($1 == %~~ && $3 == %~~); s; else; $2 + ($1 == %~@~ ? %~~ : %~:~) + ($3 == %~~ ? %~-~ : $3); end}'
日付の書式変更
[2003/10/21] → [2003-10-21]
メモディレクトリに cd して,
find . -name '*.howm' -print | xargs -n 1 ruby -p -i.bak -e '$_.gsub!(%r!(\D)(\d{4}/\d{2}/\d{2})(\D)!){|s| $1 + ($2.tr "/", "-") + $3}'
メモディレクトリに cd して,
find . -name '*.howm' -print | xargs -n 1 ruby -p -i.bak -e '$_.sub!(/(<<|>>).*/){|s| $1[0,1] + s}'
やりたければ, メモを改名してもよい
2003_10_18.howm → 2003-10-18-000000.howm
メモディレクトリに cd して,
find . -name '*.howm' -print | ruby -ne '$_.chop!; d = File::dirname $_; f = File::basename($_).tr("_", "-").sub(/[.][^.]+$/){|s| "-000000" + s}; puts %~mv #$_ #{File::expand_path f, d}~' > ~/howm_kuzu
~/howm_kuzu の内容を確認し, 問題なければ
cat ~/howm_kuzu | /bin/sh
GNU touch の場合
find . -name '*.howm' -print | sort -r | ruby -ne 'puts %~touch -d "#{ARGF.lineno} min ago" #$_~' > ~/howm_kuzu
それ以外の場合
find . -name '*.howm' -print | sort | ruby -ne '$_.chop!; puts %~sleep 1; touch #$_~' > ~/howm_kuzu
~/howm_kuzu の内容を確認し, 問題なければ
cat ~/howm_kuzu | /bin/sh
旧体制を貫く場合: .emacs (howm ロードより前)に
(setq howm-ref-header ">>") ; goto リンク (setq howm-keyword-header "<<") ; come-from リンク (setq howm-reminder-old-format t) ; リマインダの書式変更をしない (setq howm-date-separator "/") ; 日付は 2003/10/21 の形式 (setq howm-menu-keyword-regexp nil) ; 「%○○%」を menu-mode にしない (setq howm-menu-top nil) ; C-c , , で「<< %menu%」を開かない (setq howm-menu-file "menu.howm") ; C-c , , で menu.howm を開く (setq howm-use-color nil) ; << などに色をつけない (setq howm-menu-name-format " *howmM:%s*") ; メニューは隠し buffer (setq howm-abbreviate-file-name nil) ; ファイル名表記は full path ;; 旧デフォルト設定 (setq howm-file-name-format "%Y/%m/%Y_%m_%d.howm") ; 1 日 1 ファイル (add-to-list 'auto-mode-alist '("\\.howm$" . fundamental-mode)) (setq howm-default-key-table '( ;; ("key" func list-mode-p global-p) ("r" howm-initialize-buffer) ("l" howm-list-recent t t) ("a" howm-list-all t t) ("g" howm-list-grep t t) ("m" howm-list-migemo t t) ("t" howm-list-todo t t) ("y" howm-list-schedule t t) ("c" howm-create t t) ("," howm-menu t t) ("d" howm-dup) ("i" howm-insert-keyword) ("D" howm-insert-date) ("K" howm-keyword-to-kill-ring t t) ("n" action-lock-goto-next-link) ("p" action-lock-goto-previous-link) ("Q" howm-kill-all t t) )) (when (featurep 'howm-mode) (howm-set-keymap))
~/.emacs (~/.emacs.el かも)に, 以下のように書く
<<< などに色をつけない
(setq howm-use-color nil)
色かえ: howm のロードより後に
(set-face-foreground 'howm-mode-keyword-face "red") ;; <<< (set-face-foreground 'howm-mode-ref-face "magenta") ;; >>> (set-face-background 'howm-mode-wiki-face "green") ;; [[]] の背景 (set-face-background 'howm-mode-title-face "yellow") ;; = の背景 (set-face-foreground 'action-lock-face "blue") ;; 下線文字 (set-face-underline 'action-lock-face t) ;; 下線は文字と同色 (Emacs 21) (set-face-underline 'action-lock-face "dark cyan") ;; 下線 (Emacs 21) (set-face-foreground 'howm-menu-key-face "orange") ;; メニューの shortcut
内容バッファに rd-mode な色をつける
;; rd-mode.el が読み込まれているという前提で (setq howm-view-contents-font-lock-keywords rd-font-lock-keywords)
「カタカナ」でメニュー, 「Ctrl-カタカナ」で新規メモ
(define-key global-map [katakana] 'howm-menu) (define-key global-map [(control katakana)] 'howm-create)
[tab]([alt]-[tab])で次(前)のリンクに移動
(define-key howm-mode-map [tab] 'action-lock-goto-next-link) (define-key howm-mode-map [(meta tab)] 'action-lock-goto-previous-link)
メモを ~/memo/ に置く
(setq howm-directory "~/memo/")
メモ置き場/年/年月日-時分秒.howm に
(setq howm-file-name-format "%Y/%Y%m%d-%H%M%S.howm")
1 日 1 ファイル (メモ置き場/年/月/年_月_日.howm に)
(setq howm-file-name-format "%Y/%m/%Y_%m_%d.howm")
キーワード一覧を ~/howm/.howm-keys に置く
(setq howm-keyword-file "~/howm/.howm-keys") ;; デフォルトは ~/.howm-keys
タイトル一覧を表示
(setq howm-list-title t)
○○のときだけタイトル表示
(setq howm-list-title ;; ↓に書いたコマンドでだけタイトル表示 '(howm-list-all howm-list-recent howm-list-grep howm-list-grep-fixed howm-list-migemo howm-list-related howm-list-around))
関数を指定することも可能
(setq howm-list-title (lambda () …))
一覧バッファと内容バッファを横に並べる
(setq howm-view-split-horizontally t)
横に並べるけど, 一旦 C-x 1 した後は縦に並ぶ
(setq howm-view-split-horizontally 'hoge) ;; t, nil 以外を指定
[return] でファイルを開く際, 一覧バッファを消す. C-u して [return] だと, 一覧を残す.
(setq howm-view-summary-persistent nil)
一覧で「!」したときの初期コマンドを変更
(setq howm-view-summary-shell-last-file "FILE") (setq howm-view-summary-shell-hist '("mv FILE ~/gomi" "touch FILE" "ls -l FILE"))
一覧バッファ・内容バッファを検索ごとに個別に作る
(setq howm-view-summary-name "*howmS:%s*") (setq howm-view-contents-name "*howmC:%s*")
一覧をデフォルトで日付順に
(setq howm-list-normalizer 'howm-view-sort-by-reverse-date)
C-x 1 後は勝手にフレームを分割しない (SPC で再分割)
(setq howm-view-keep-one-window t)
一覧バッファの色つけ例
(setq howm-view-summary-font-lock-keywords '(("^2003" . 'highlight)))
foo を検索しても [[foo]] を上位にしない
(setq howm-list-prefer-wiki nil)
メニューの末尾に「R[menu 更新] E[menu 編集]」をつける
(setq howm-menu-footer "\n-- \n%\"R\"[menu 更新] %\"E\"[menu 編集]")
メニューは隠しバッファに
(setq howm-menu-name-format " *howmM:%s*")
メニューをメモ扱いしない (メモ一覧・検索の対象外に)
;; mv ~/howm/0000-00-00-000000.howm ~/hoge/fuga/menu.howm しといて… (setq howm-menu-top nil) (setq howm-menu-file "~/hoge/fuga/menu.howm")
予定表の表示範囲
(setq howm-menu-schedule-days-before 2) ;; ○日前から (setq howm-menu-schedule-days 7) ;; ○日後まで
todo の表示件数
(setq howm-menu-todo-num 50)
メニューファイルを直接指定
(setq howm-menu-top nil) (setq howm-menu-file "0000-00-00-000000.howm")
メニューを 2 時間キャッシュ
(setq howm-menu-expiry-hours 2)
かわりに, メモ保存時にメニューを自動更新するようになる(かなり重い). それも止めるなら
(setq howm-menu-refresh-after-save nil)
セーブ後の下線引き直しをしない
(setq howm-refresh-after-save nil)
検索に grep を使う
(setq howm-view-use-grep t)
grep コマンド名を変更するなら…
(setq howm-view-grep-command "egrep") (setq howm-view-fgrep-command "fgrep")
ファイル名(正規表現)と viewer の対応を指定 (~/.mailcap より優先します)
(setq howm-view-external-viewer-assoc '( ("[.]\\(jpg\\|gif\\|png\\)$" . "display %s") ("[.]dvi$" . "xdvi %s") ))
「外部 viewer を使わない mime-type」の指定 (正規表現)
(setq howm-view-open-by-myself '("text/.*" "application/emacs-lisp"))
~/.mime-types や ~/.mailcap を参照しない
(setq howm-view-use-mailcap nil)
ドットファイルも探す
(setq howm-excluded-file-regexp "^[.][.]\\|[~#]$\\|\\.bak$\\|/CVS/")
全文検索のとき, メモに加えて指定ディレクトリ以下も再帰的に探す
(setq howm-search-path '("~/Mail" "~/News")) (setq howm-search-other-dir t) ;; 下記のトグルの初期値 (t か nil)
検索に使う関数をすりかえ
;; t なら grep コマンド, nil ならデフォルトの elisp 関数を使用. ;; これ以外なら, 指定した関数を使用. (setq howm-view-use-grep #'my-grep-function) (defun my-grep-function (str file-list &optional fixed-p force-case-fold) "STR を FILE-LIST (ファイル名のリスト)から検索. 戻り値は, ((ファイル名 行番号 行内容) (ファイル名 行番号 行内容) …) というリスト. FIXED-P が真なら文字列 STR を, 偽なら正規表現 STR を検索する. STR が大文字を含まないときや, 含んでも FORCE-CASE-FOLD が真のときは, 大文字小文字の違いを無視する." …)
howm で foo を検索した後は, C-s C-s も foo の検索に
(setq howm-view-update-search-ring t)
物騒なので, ↓を書いとかないと無効
(setq howm-kill-all-enable-force t)
こんなふうに
Subject: タイトルバーに時計を表示 ←直前のリージョンの内容 Date: Thu, 12 Sep 2002 15:45:59 +0900 In-Reply-To: </home/hira/sawfish/rich-title/rich-title.jl> ←直前ファイル ■ ← カーソル
~/.emacs に
(setq howm-template "Subject: %title\nDate: %date\n%file\n%cursor") (setq howm-template-date-format "%a, %d %b %Y %H:%M:%S %z") (setq howm-template-file-format "In-Reply-To: <%s>\n")
テンプレートを複数指定
;; C-u 2 C-c , c → 2 番目のテンプレートで新規メモ ;; メニューから C-u 2 c でも同様 (setq howm-template '("= %title%cursor\n%date %file\n\n" "%date: %title%cursor"))
タイトル(メモ区切り) @@@ …
(setq howm-view-title-header "@@@")
goto リンク ==>…, come-from リンク <==…
(setq howm-ref-header "==>") (setq howm-keyword-header "<==")
goto リンク ((<…>)), come-from リンク ((:…:))
;; <>:は半角に直してください (setq howm-ref-regexp "((<\\([^>\r\n]+\\)>))") (setq howm-ref-regexp-pos 1) (setq howm-keyword-format "((:%s:))") (setq howm-keyword-regexp "\\(((:\\)\\([^:\r\n]+\\):))") (setq howm-keyword-regexp-hilit-pos 1) ;; 「関連キーワード」用 (setq howm-keyword-regexp-pos 2) (setq howm-keyword-regexp-format "%s") ;; M-x describe-variable 参照
「<<< hoge」の作成後は, 「hoge」にも下線
(setq howm-wiki-regexp "\\[\\[\\([^]\r\n]+\\)\\(\\]\\]\\)") (setq howm-wiki-regexp-hilit-pos 2) (setq howm-wiki-regexp-pos 1)
<<< で大文字小文字を区別しない
(setq howm-keyword-case-fold-search t)
日付入力(C-c , d または [日↓])で年や月を略したら, 「未来」と解釈
(setq howm-insert-date-future t)
「http://」でリターン押したら, URL を kill-ring へ
(setq action-lock-no-browser t)
済項目を表示しない
(setq howm-schedule-types "[!@]") ;; 予定表 (setq howm-todo-types "[-+~!]") ;; todo 一覧
リマインダ記号(!+-~@.)から RET 一発で「済」に
(setq howm-action-lock-reminder-done-default "")
予定表・todo 一覧からリマインダ記号上で直接 RET したとき, 叩かれ先バッファを自動 save
(setq howm-action-lock-forward-save-buffer t)
保留の浮沈範囲
(setq howm-todo-priority-defer-init -14) ;; 初期値 = 下限 (setq howm-todo-priority-defer-peak 0) ;; 上限
例: メニューで, 「潜伏中は非表示」「済は表示」
(setq howm-menu-todo-priority -50000) (setq howm-todo-priority-done-bottom -44444)
{ } (トグルスイッチ)の変更
;; howm の load 前に (setq action-lock-switch-default '("{ }" "{*}" "{-}")) ;; 何個でも
{_} (未処理)の変更
(setq howm-dtime-format "[%a %b %d %H:%M:%S %Y]") ;; {_} (setq howm-template-date-format "[%Y-%m-%d %H:%M]") ;; テンプレート
「file://…」や「http://…」の変更 (ましな設定募集) thx
;; howm (正確には action-lock.el) のロードより前に. ;; ・file://… (setq action-lock-open-regexp "\\<file://\\(localhost\\)?\\([-!@#$%^&*()_+|=:~/?a-zA-Z0-9.,;]*[-!@#$%^&*()_+|=:~/?a-zA-Z0-9]+\\)\\>") (setq action-lock-open-regexp-pos 2) ;; 2 個目の「\\(…\\)」がファイル名 ;; ・http://… (setq action-lock-browse-regexp "\\<\\([htp]\\{3,5\\}s?\\|ftp\\)://\\([-!@#$%^&*()_+|=:~/?a-zA-Z0-9.,;]*[-!@#$%^&*()_+|=:~/?a-zA-Z0-9]+\\)\\>" (setq action-lock-browse-regexp-pos 0) ;; マッチした全体が URL
action-lock 追加例: 「Message-ID: …」でリターン押したら, 該当メールを namazu で検索
;; howm を load した後に (defun my-howm-search-message-id (id) (message "Searching...") (let* ((query (format "+message-id:%s" id)) (args `("-l" "-n" "1" ,query "/home/hoge/NMZ/Mail")) (found (car (howm-view-call-process "namazu" args)))) (if found (progn (find-file found) (re-search-forward "^$" nil t) (message "Done.")) (message "No match.")))) (setq action-lock-default-rules (cons (action-lock-general 'my-howm-search-message-id "Message-[Ii][Dd]: \\(.*\\)$" 1) action-lock-default-rules))
メニューを更新するたびに, カレンダーへの export も更新 (→外部ツール)
(defun my-howm-menu-hook () (shell-command "tag2plan ~/howm/*/*/*.howm > ~/.dayplan_tag &") (switch-to-buffer howm-menu-name)) (add-hook 'howm-menu-hook 'my-howm-menu-hook)
おまけ
(setq howm-congrats-format '( "%sキタ━━━━━(゜∀゜)━━━━━!!!!" "(・∀・) %s!" "(°Д°)%s?" "( ´_ゝ`)< %s" ;; …以下略… ))
(同梱ツールは ext/ に)
メモディレクトリ ~/howm/ を変換して ~/converted/ に吐く
./howm2 ~/howm/ ~/converted/
<<< の大文字小文字を無視
./howm2 -i ~/howm/ ~/converted/
リンク書式の指定
./howm2 -comefrom='<<<' -goto='>>>' ~/howm/ ~/converted/
「ほげ」を含むファイルだけ HTML 化
grep -rl 'ほげ' ~/howm/ | howm2 -list ~/converted/
カレンダー(予定・〆切・済みの一覧)を出力
hcal.rb -schedule_mark='○' -deadline_mark='●' -done_mark='/' ~/howm/*/*/*.howm
こんな感じでずらずら
----------------<6>---------------- 2003 01 Sun 02 Mon ●田中先生に連絡 ○B4輪講 小林 ○工学基礎実験 12:40 <<<<##>>>> …
こんな感じで alias しとくと便利
alias hcal="hcal.rb -schedule_mark='○' -deadline_mark='●' -done_mark='/' ~/howm/*/*/*.howm | less '+/<<<<#'"
コマンドラインで
hcal.rb -l memo.txt
emacs から M-x grep して
Run grep (like this): hcal.rb -l ~/memo/*.txt
同梱の tag2plan で
tag2plan ~/howm/*/*/*.howm > ~/.dayplan_tag
のようにしてタグ抽出・変換
キーワードを決めて, 日記中に書いておく
$食費$ 500円 ラーメン
(バグの指摘をくださる方へ)
私は /usr/share/emacs/site-lisp/smart-complete.el の該当箇所を コメントアウトしてしまいました
;(defun split-string (s bag) ; (cond ((equal (length s) 0) '("")) ; ((string-match bag s) ; (if (= (match-beginning 0) 0) ; (cons "" (split-string (substring s (match-end 0)) bag)) ; (cons (substring s 0 (match-beginning 0)) ; (split-string (substring s (match-end 0)) bag)))) ; (t (cons s nil))))
Maxima については
http://maxima.sourceforge.net/ http://phe.phyas.aichi-edu.ac.jp/~cyamauch/maxima/
特に, Q-pocket・HashedWiki・ChangeLog メモからいっぱいまねしてます. 感謝.
thx > patch・改良案・指摘をくださった皆様
{_} の書式は howm 側で上書きするから, ↓は無効
(setq action-lock-date-default '("{_}" "[%Y-%m-%d %H:%M]")) ;; 叩き前後
色の変更
(set-face-foreground 'howm-menu-list-face "cyan")
メニューの todo に旬度を表示可 thx
(setq howm-menu-todo-priority-format "(%8.1f)")
「タイトル」の正規表現を, 機能ごとに変更可能
(setq howm-list-title-regexp "^[*=] [^ ]") ;; 一覧表示 (setq howm-menu-recent-regexp "^[*=] [^ ]") ;; メニュー中の %recent
一覧表示窓の行数設定 thx
(setq howm-view-summary-window-size 10)
一覧から RET で開くとき, 内容バッファのカーソル位置を保つ
(setq howm-view-summary-keep-cursor t)
一覧時の内容バッファにファイル全体を表示させる
(setq howm-view-preview-narrow nil)
カスタマイズ
(setq howm-menu-recent-num 20) ;; 表示する個数
ただし, 登録した関数しか使えません (おっかないから)
(setq howm-menu-allow (append '(foo bar) howm-menu-allow)) ;; foo と bar を許可
リマインダのカスタマイズ thx
;; 新しい型のリマインダ「*」を定義する例: ;; 「[2004-07-11]* ほげ」は, 指定日まで上昇し, そのあと下降. ;; (旬度 = - |遅れ / 猶予日数|. 猶予日数のデフォルトは 3) ;; 1. 旬度関数を準備 (遅れと猶予日数(とアイテム)を食って旬度を吐く) ;; 遅れ: 指定日から今日までの日数. まだならマイナス. ;; 猶予: 「[2004-07-11]*8」なら 8. 「[2004-07-11]*」だけなら nil. ;; 旬度: 大きいほど上. 「覚書」なら初日が 0 で毎日 1 ずつ減る. ;; (アイテム: ふつうは使わないけどついでに. howm-view.el 参照) (defun my-priority (late lazy item) (let ((r (howm-todo-relative-late late lazy 3))) ;; r = late / lazy (- (abs r)))) ;; 2. face を準備 (defface my-face '((t (:foreground "cyan"))) "my face") (setq my-face 'my-face) ;; 3. 記号, 旬度関数, face を登録. ;; 残りの引数二つは, 「予定表に表示するか」「todo リストに表示するか」. (howm-define-reminder "*" #'my-priority 'my-face nil t)
リマインダの「cancel」を違う言葉にカスタマイズ (thx > NARA Shinsuke さん)
(setq howm-reminder-cancel-string "give up")
[2004-07-16 10:15]@ 会議
日付上で RET×2 してから…
-, + → 前日, 翌日 (, ) → 前日, 翌日 {, } → 前月, 翌月 [, ] → 前年, 翌年
ヒットしなかったらその先の日付を順に探す
(setq howm-date-forward-ymd-limit 90) ;; 90日先で give up
日付入力「C-c , d」したときの動作をさらに小賢しく
(setq howm-insert-date-pass-through t)
メモ中に「<<< foo <<< bar <<< baz」と書けば, foo, bar, baz のどれで RET しても 「foo または bar または baz」の検索に
(setq howm-keyword-list-alias-sep "\t") ;; .howm-keys ファイルの書式 (setq howm-view-grep-file-stdin-option "-f -")
メモを開いたとき自動的に narrow に thx
(add-hook 'howm-view-open-hook 'howm-narrow-to-memo)
検索結果の一覧で, 単語の途中にマッチしたものは後まわし
(setq howm-list-prefer-word t)
おまけ
(setq howm-congrats-command '("play" "~/sound/level.wav"))