[Mew-dist 07574] Re: namazu.el for mew
Hideyuki SHIRAI ( 白井秀行 )
shirai at example.com
1999年 2月 22日 (月) 08:57:26 JST
こんにちは、白井です。
# ちょっと、オフラインが続いたら user-meeting の話が……
# 是非、参加させていただきます。
From: Takeshi ITOH <titou at example.com> さん曰く
Subject: [Mew-dist 07503] Re: namazu.el for mew
Message-ID: <19990218081237D.titou at example.com>
Date: Thu, 18 Feb 1999 09:28:56 +0900
伊藤> 伊藤@Bitsです。
伊藤> 最初にmewへ提案です。mew-grep というコマンドがあったら嬉しいです。
便利そうですね。
>>>>> Hideyuki SHIRAI (白井秀行) <shirai at example.com> さんは
> あと、folder の指定と、出力の sort もできると最高ですね。
伊藤> namazu.el の関係者から '?' mew-summary-search-mark の機能として
伊藤> namazu が使えるようにしたら、という suggestion をいただいて添付の
伊藤> ような改造して試しています。とっても効率の悪いつくりなのでおはずか
伊藤> しいし私自身もあまりテストしてないのですが。
こちらも今度試させていただきます。
伊藤> いただきました。^@^
どうも。その後、いろいろ改造して以下の様になっていますので、よろ
しかったら、こちらもどうぞ。設定はほとんど個人的な趣味です。^^;
> (mew-summary-goto-folder nil (concat "+" folder) t)
> で自動的に update してくれるのですが、如何でしょう。こういうとき
> は、range:update 決めうちで良いじゃないかなぁと思います。
伊藤> こちらは試してないのですが、この方が嬉しいと思います。
両方対応しています。:-)
(if (locate-library "namazu")
(progn
(autoload 'namazu "namazu" nil t)
(defvar namazu-mew-default-dir "~/namazu/index")
(defvar namazu-mew-argument "-Hl")
(defvar namazu-output-url-pattern-mew
"^/.*Mail/\\(.*\\)/\\([0-9]+\\) \\(size ([^)]*)\\)")
(defvar namazu-mew-full-window t)
(defvar namazu-mew-history nil)
(defvar namazu-mew-window-config nil)
(setq namazu-default-dir namazu-mew-default-dir)
(setq namazu-argument namazu-mew-argument)
(setq namazu-buffer "*namazu*")
(setq namazu-history nil)
(defun namazu-mew-folder ()
"show pointed message at mew summary"
(interactive)
(setq namazu-mew-window-config (current-window-configuration))
(if (or (not (boundp 'mew-mail-path))
(null mew-mail-path))
(mew))
(if (re-search-forward namazu-output-url-pattern-mew nil t)
(let ((folder (buffer-substring (match-beginning 1) (match-end 1)))
(message (and (match-beginning 2)
(buffer-substring
(match-beginning 2) (match-end 2)))))
(beginning-of-line)
(sit-for 0)
(condition-case err
(mew-summary-goto-folder nil (concat "+" folder) t)
(error
(mew-summary-goto-folder nil (concat "+" folder))))
(if namazu-mew-full-window
(delete-other-windows))
(while (processp mew-summary-buffer-process)
(sit-for 1))
(mew-summary-jump-message message)
(mew-summary-show))
(mew-summary-goto-folder nil (mew-input-folder mew-inbox-folder))
(if namazu-mew-full-window
(delete-other-windows))))
(defun namazu-mew-search (&optional arg)
"search with namazu from mew summary buffer."
(interactive "P")
(if (or arg
(not (get-buffer namazu-buffer)))
(let ((folders (mew-input-folders "+"))
dirs key)
(setq dirs
(mapconcat
(lambda (i)
(format "+url:%s" (mew-expand-folder i)))
folders " "))
(setq namazu-mew-history
(mapcar
(lambda (i)
(progn
(while (string-match "^\\+url:[^ ]+ " i)
(setq i (substring i (match-end 0))))
(if (string-match "^ *( *\\(.*\\)) *$" i)
(setq i (substring i (match-beginning 1) (match-end 1))))
(if (string-match " *$" i)
(setq i (substring i 0 (match-beginning 0))))
i))
namazu-history))
(setq key
(read-from-minibuffer
"Namazu Keyword: "
(car namazu-mew-history) nil nil 'namazu-mew-history))
(setq key
(if (and dirs key)
(format "%s ( %s )" dirs key)
(if dirs
(format "%s" dirs key)
(if key
(format "%s" key)))))
(add-to-list 'namazu-history key)
(let ((namazu-default-dir namazu-mew-default-dir)
(namazu-argument namazu-mew-argument))
(namazu 0 namazu-default-dir key)))
(switch-to-buffer namazu-buffer)
(if (window-configuration-p namazu-mew-window-config)
(set-window-configuration namazu-mew-window-config))
(if namazu-mew-full-window
(delete-other-windows))))
(add-hook 'mew-summary-mode-hook
'(lambda ()
(define-key mew-summary-mode-map "L" 'namazu-mew-search)))
(add-hook 'namazu-mode-hook
'(lambda ()
(define-key namazu-mode-map "m" 'namazu-mew-folder)))
(add-hook 'namazu-mode-hook
'(lambda ()
(define-key namazu-mode-map "L" 'namazu-re-search)))
))
--
白井秀行 (mailto:Shirai at example.com)
Mew-dist メーリングリストの案内