[Mew-dist 05787] Re: keyの定義
Shun-ichi GOTO
gotoh at example.com
1998年 8月 1日 (土) 17:24:49 JST
後藤@太陽計測です
>>>>> From: SUGITA Toshinori <sugita at example.com>
> > summary 内で 1 を打つと Buffer is read-only: #<buffer +inbox> と
> > 出てしまい、refile mark ができません。
> >
> > 何が悪いのでしょうか?
>
> またまた実験してみました。
> 確かにうまくいかないですね。。。なんでだろう???
> eval-expressionで直接実行するとうまく行くんですけど、、、
... is read-only ... というのは、"1"のキーにコマンドが定義できていない
から出ているのだと思います。
件のコードは、なんだかつづりも間違ってます(spacial<>special)し、
defun が引数無しだし、でよろしくありません。
でもちょっと直して試してみたら、OKでしたよ。
(defun refile-special ()
(interactive)
(mew-summary-refile '("+hogehoge") nil))
(define-key mew-summary-mode-map "1" 'refile-special)
これをもう少し延長して"One Key Refile"というアイディアもいけますね。
例えば10個の数字キーにリファイル先を定義できるようにするとか。
試しに作ってみたものを添付します。
#何かの役に立つかもね。
--- Regards,
Shun-ichi Goto <gotoh at example.com>
R&D Group, TAIYO Corp., Tokyo, JAPAN
-------------- next part --------------
;; -*- Emacs-Lisp -*-
;;
;; mew-onekey.el -- [Mew] Refile message with one key.
;; $Revision: 1.1 $
;; Author: Shun-ichi GOTO <gotoh at example.com>
;; Create: Sat Aug 01 16:37:00 1998
;; Keyword: mew, mail
;;; Commentary:
;; Refile message with one key-stroke
;;
;; To use this, define mew-onekey-refile-alist
;; and load this, then M-x mew-onekey-refile-setup
;;
;; Ex. in ~/.emacs
;;
;; (setq mew-onekey-refile-alist
;; '(("2" "+hoge")
;; ("5" "+foo")
;; ("6" "+bar")
;; ("0" "+inbox" "+kero"))
;; (load "mew-onekey-refile")
;; (add-hook 'mew-summary-mode-hook 'mew-onekey-refile-setup)
;;
;;; Code:
(defvar mew-onekey-refile-alist
nil
"Alist of number and folders to refile with one-key.
For example:
'((\"2\" \"+hoge\")
(\"5\" \"+foo\")
(\"6\" \"+bar\")
(\"0\" \"+inbox\" \"+kero\"))")
(defun mew-summary-onekey-refile ()
(interactive)
(mew-onekey-refile (this-single-command-keys)))
(defun mew-onekey-refile (key)
(let* ((flds (cdr (assoc key mew-onekey-refile-alist)))
num str)
(if (null flds)
() ;; do nothing
(save-excursion
(mew-summary-goto-message)
(setq num (mew-summary-message-number)
str (mapconcat '(lambda (x) x) flds ", ")))
(mew-summary-refile flds)
(message "Message %s is refiled to %s" num str))))
(defun mew-onekey-refile-setup ()
(interactive)
(let ((alist mew-onekey-refile-alist))
(while alist
(define-key mew-summary-mode-map
(car (car alist)) 'mew-summary-onekey-refile)
(setq alist (cdr alist)))
))
(defun mew-onekey-refile-unsetup ()
(interactive)
(let ((alist mew-onekey-refile-alist))
(while alist
(define-key mew-summary-mode-map (int-to-string (car (car alist))) nil)
(setq alist (cdr alist)))
))
;; mew-onekey.el ends here
Mew-dist メーリングリストの案内