top  Index  Search  Changes  RSS  Login

HidePrivateReminder

2ch2:591 - howmのメニュー画面で、 サマリーに[Private]と入ったメモをデフォルトで表示させないことって出来ますか?

2ch2:593 - C-c,a とか C-c,s でも特定カテゴリを hide できると嬉しいのですが。

2ch3:215 - 予定表(C-c , y)や ToDo リスト(C-c , t)でも非表示にしたい


こんな? (M-x howm-toggle-private でトグル. まじめに試してないので, 動かなかったら知らせてください)

当然, 「[Private] だけ表示」や「もっといろんなカテゴリを自在に」って 欲求も出てくるけど, 需要がわからんからひとまず最低限で.

※ [Private] という文字列の検出範囲が「サマリ」か「本文含めてどこでも」か ごっちゃになっているので注意!

;; howm-test050308 でテスト
(defvar howm-private-regexp (regexp-quote "[Private]"))
(defvar howm-hide-private t)
(when (not (fboundp 'howm-item-summary)) ;; for howm-1.2.1
  (defalias 'howm-item-summary #'howm-view-item-summary))
(defadvice howm-menu-general (around hide-private (label formatter item-list)
                                     activate)
  (when howm-hide-private
    (setq item-list
          (remove-if (lambda (item)
                       (string-match howm-private-regexp
                                     (howm-item-summary item)))
                     item-list)))
  ad-do-it)

(defvar howm-toggle-private-hist nil)
;(defvar howm-toggle-private-hist (list howm-private-regexp))

(defun howm-toggle-private (&optional arg)
  "プライベートメモを表示するか否かを切り替える.
C-u を前につけたときの動作は, 変数 `howm-toggle-private-hist' の値に依存.
・nil → プレフィクスが正の値のときオン, 0 か負ならオフ
・nil 以外 → プライベートとみなす正規表現を対話的に入力
後者の場合, `howm-toggle-private-hist' は文字列のリストとすること.
それが対話入力の初期履歴となる."
  (interactive "P")
  (cond ((null arg)
         (setq howm-hide-private (not howm-hide-private)))
        (howm-toggle-private-hist
         (setq howm-private-regexp
               (read-from-minibuffer "Regexp: "
                                     `(,howm-private-regexp . 0)
                                     nil
                                     nil
                                     'howm-toggle-private-hist)))
        (t
         (setq howm-hide-private (> (prefix-numeric-value arg) 0))))
  (howm-menu t)
  (message (if howm-hide-private
               "hide private reminders"
             "show private reminders")))

;; [Private] を含むメモを一覧でも非表示に.
;; ただし, 「一ファイル複数メモ」でも「ファイル丸ごと非表示」になったりするので注意.
;; 要 howm-test090530 以降.
(setq howm-normalizer
  (lambda (item-list)
    (when howm-hide-private
      (setq item-list
            (howm-filter-items-by-contents item-list howm-private-regexp t)))
    (howm-sort-items-by-mtime item-list)))

;; [Private] を含む項目を予定表(C-c , y)や ToDo リスト(C-c , t)でも非表示に
;; howm-test090502 でテスト
(defun howm-filter-private-maybe (postprocess)
   (when howm-hide-private
     ; (if (howm-view-remove-by-contents howm-private-regexp) ;; メモ毎
     (if (howm-view-filter-by-summary t howm-private-regexp) ;; 項目毎
         (funcall postprocess)
         (progn
           (howm-view-kill-buffer)
           (message "No match.")))))
;; 迂遠だが, 公開関数に defadvice する方が安全
(defadvice howm-list-schedule (around hide-private activate)
  ad-do-it
  (howm-filter-private-maybe #'howm-reminder-goto-today))
(defadvice howm-list-todo (around hide-private activate)
  ad-do-it
  (howm-filter-private-maybe #'list)) ;; dummy postprocess

  • 2005-03-14 (月) 22:45:33 taku : 神!ありがとうございます、早速試してみます。
  • 2005-03-14 (月) 22:47:33 名無しさん : できれば、 (setq howm-default-category "!(Private||Secret)") なんてのは駄目でしょうか?
  • 2005-03-15 (火) 20:59:18 名無しさん : こう? (setq howm-private-regexp (regexp-opt '("Private" "Secret")))
  • 2005-03-19 (土) 00:14:13 taku : うわー、とっても便利です。会社で使うのにとっても役立ちます。
  • 2005-03-20 (日) 22:36:37 名無しさん : see also: 複数ディレクトリ
  • 2005-05-10 (火) 19:07:02 名無しさん : 2ch2:678をうけてちょい改造
  • 2006-06-12 (月) 08:51:06 taku : (defvar howm-private-regexp (regexp-quote "[Private]" "[Priv]")) みたいな使い方は出来ないでしょうか。うまくいきませんでした。
  • (setq howm-private-regexp (regexp-opt '("[Private]" "[Priv]"))) かな?
  • 2006-06-13 (火) 10:22:09 taku : ↑うまく行きました。これくらい、自分で勉強して解決できるようにしたいですが、有難うございました。
  • って, よく見たらすぐ上に同じこと書いてあるやん. 気づこうよ > 自分 ^^;
  • 2006-12-15 (金) 11:07:51 taku : 2006-11-21版で、C-c,aやC-c,sをしても、Privateが隠れなくなっています。
  • 再現しません…. 手元ではちゃんと隠れました.
  • 2007-01-10 (水) 14:47:51 名無しさん : すみません、関数の追加ありがとうございました。しかし、
(setq howm-private-regexp (regexp-opt '("[Private]" "[Priv]")))

だとNGで、

(defvar howm-private-regexp (regexp-quote "[Private]"))

だとOKなのですが、何が問題なのでしょうか。

  • 「何をしたら, どうなってほしいのに, どうなった」を具体的に書いてもらわないとどうにも. → バグレポートFAQ
  • 2007-01-11 (木) 10:18:07 taku : 失礼しました。http://howm.sourceforge.jp/cgi-bin/hiki/hiki.cgi?BugReportPaste に投稿しました。
  • thx. 「defadvice howm-list-reminder」のところを直してみました.
  • 2007-01-12 (金) 11:12:17 taku : 今度は、howm-toggle-private-hist が nil の場合、howm-private-regexp値以外のリマインダーも表示されなくなってしまいました。 make testで確認しました。
  • 「何をしたら, どうなってほしいのに, どうなった」を具体的に具体的に具体的にお願いします. (具体的な設定, 具体的なキー操作, 具体的な表示内容, …) → バグレポートFAQ
  • …まあたぶんあれ(上の※)のことだと思うので, 変えときました
  • 2007-01-14 (日) 19:28:42 taku : すみません、うまくいきました。ありがとうございます。
  • 2007-07-14 (土) 15:27:21 taku : すみません、突然(?)HidePrivateReminderの設定をしていて、todo等が動かなくなってしまいました。BugReportPasteにmake testの結果を貼りました。
  • thx. howm-test070715 で直してみました.
  • 2007-07-16 (月) 01:14:33 taku : うまくいきました、対応ありがとうございます。
  • howm-test090502 用に修正しました (defadvice していた関数 howm-list-reminder 自体が廃止というオチ). thx > 2ch3:709
  • 2009-05-06 (水) 08:55:25 taku : 修正確認できました。いつも、ありがとうございます。
  • howm-test090530 用に修正しました. thx > 2ch3:731
(Please LogIn to post comments.)

Last modified:2009/05/30 23:18:31
Keyword(s):
References:[実装済] [HidePrivateReminder] [BugReportPaste]