トップ «前の日記(2005-01-04 (Tue)) 最新 次の日記(2005-01-13 (Thu))» 編集

猫熊は燃えつきた?!日記

最近なんにもやっていませんが、なにかやったらこちらに置くようにしています。
2002|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|
2011|09|
2012|02|


2005-01-12 (Wed) [長年日記]

mew-nmz

うーむ、まだまだ続くな。。。

息抜き

息抜きかどうかわからないけど、丸山さんのリクエストでこんなのを作ってみた。(ちょっと改善)
(0) mew-nmz とかで、検索したキーをメッセージ中でハイライト表示します。
(1) ある程度自動に引数を処理します。これ以上は勘弁。
(2) "kk" を押すと regexp を変更できます。
    やめたいときは "kk" で "" を入力。"prefix kk" でも OK。
(3) mew-summary-find-keyword-down|up() と同じ local 変数を使って
    いるので、M-n, M-p が変なときも同様に "kk" で修正します。
    ちなみに、最初にキーを聞いてくれなくなります。
(4) defadvice で呼んでいる mew-message-highlight-keyword-get()
    の引数はお使いのものに変えてください。
といった感じ。
(defface mew-message-highlight-keyword-face
  '((((class color) (background light))
     (:background "dark khaki" :bold t :underline t))
    (((class color) (background dark))
     (:background "blue" :bold t :underline t))
    (t (:bold t :underline t)))
  "*Face of mew-message-highlight-keyword."
  :group 'mew-highlight)
 
(add-hook 'mew-summary-mode-hook
	  (lambda ()
	    (define-key mew-summary-mode-map "kk" 'mew-message-highlight-keyword-set)))
 
(defun mew-message-highlight-keyword-set (&optional args)
  (interactive "P")
  (when (mew-summary-or-virtual-p)
    (if args
	(progn
	  (mew-sinfo-set-find-key nil)
          (message "Reset highlight keyword")
	  (and (mew-sinfo-get-disp-msg)
	       (mew-summary-display 'redisplay)))
      (let* ((hist (copy-sequence mew-input-pick-pattern-hist))
	     (key (read-string "Keyword: "
			       (or (mew-sinfo-get-find-key)
				   (car mew-input-pick-pattern-hist))
			       'hist)))
	(if (string= key "")
	    (mew-sinfo-set-find-key nil)
	  (mew-sinfo-set-find-key key))
	(and (mew-sinfo-get-disp-msg)
	     (mew-summary-display 'redisplay))))))
 
(defadvice mew-nmz-search-mark (after keyword-get activate)
  (mew-message-highlight-keyword-get 'namazu))
 
(defadvice mew-nmz-virtual (after keyword-get activate)
  (when (mew-virtual-p)
    (mew-message-highlight-keyword-get 'namazu)))
 
(defadvice mew-summary-pick-mark (after keyword-get activate)
  (mew-message-highlight-keyword-get 'mew))
 
(defadvice mew-summary-grep-mark (after keyword-get activate)
  (mew-message-highlight-keyword-get 'grep))
  ;; (mew-message-highlight-keyword-get 'mew))
 
(defadvice mew-summary-virtual-with-internal (after keyword-get activate)
  (when (mew-virtual-p)
    (mew-message-highlight-keyword-get 'mew)))
 
(defadvice mew-summary-virtual-with-external (after keyword-get activate)
  (when (mew-virtual-p)
    (mew-message-highlight-keyword-get 'grep)))
    ;; (mew-message-highlight-keyword-get 'mew)))
 
(defun mew-message-highlight-keyword-get (type)
  (let* ((key (car mew-input-pick-pattern-hist))
	 (keys (mew-split key ? ))
	 regex)
    (cond
     ((eq type 'namazu)
      (let ((frags '("(" ")" "and" "or" "not")))
	(while frags
	  (setq keys (delete (car frags) keys))
	  (setq frags (cdr frags)))
	(setq regex (regexp-opt (mapcar
				 (lambda (x)
				   (if (string-match "^\\+[^:]+:\\(.+\\)$" x)
				       (setq x (match-string 1 x)))
				   (if (string-match "^[\"{]?\\(.+\\)[\"}]?$" x)
				       (setq x (match-string 1 x)))
				   (let (tmp)
				     (while (string-match "\\*" x)
				       (setq tmp (concat tmp (substring x 0 (match-beginning 0))))
				       (setq x (substring x (match-end 0))))
				     (setq tmp (concat tmp x))
				     (setq x tmp))
				   (regexp-quote x))
				 keys)))))
     ((eq type 'mew)
      (let ((frags '("(" ")" "&" "|" "!")))
	(while frags
	  (setq keys (delete (car frags) keys))
	  (setq frags (cdr frags)))
	(setq regex (regexp-opt (mapcar
				 (lambda (x)
				   (cond
				    ((string-match "!?==?\\(.+\\)$" x)
				     (regexp-quote (match-string 1 x)))
				    ((string-match "^(?\\(.+\\))?$" x)
				     (regexp-quote (match-string 1 x)))
				    (t
				     (regexp-quote x))))
				 keys)))))
     (t	;; 'grep
      (setq regex key)))
    (if (or (not regex) (string= regex ""))
	(mew-sinfo-set-find-key nil)
      (mew-sinfo-set-find-key regex))))
 
(defun mew-message-highlight-keyword ()
  (let ((buf (mew-minfo-get-summary))
	key)
    (when (and buf (buffer-name (get-buffer buf)))
      (save-excursion
	(set-buffer buf)
	(setq key (mew-sinfo-get-find-key)))
      (when key
	(save-excursion
	  (goto-char (or (mew-header-end) (point-min)))
	  (while (re-search-forward key
				    (min (point-max) mew-highlight-body-max-size)
				    t)
	    (put-text-property (match-beginning 0) (match-end 0)
			       'face 'mew-message-highlight-keyword-face)))))))
 
(add-hook 'mew-message-hook 'mew-message-highlight-keyword)

野球

日曜日、今年最初の野球の練習。練習終了後、仲間の自宅で飲んだのだが、近来稀に見るレベルの大酔っぱらいになってしまった。

ドッグラン+ドッグカフェ

月曜日に行ってきた。有料だけあって、おしゃれだ。会員になるかどうかは不明。


書いている人: 白井秀行 (mailto:shirai@meadowy。org)
訪問して下さった人: 今日: 人, 昨日: , 過去: 人 (2007年5月10日から)
RDF Feed