[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:00069] interactive を呼びたい



亀井さん、こんにちは。

土曜日にxyzzy-lispと戯れていて、新種のメニューを開発しました!!

(defun quick-menu (ch)
  (interactive "c1:新規作成 2:名前を付けて保存 3:置換 4:日付と時刻 5:TAGファイルの作成 : ")
  (cond ((eql ch #\1) (new-file))
	((eql ch #\2) (save-as-dialog))
	((eql ch #\3) (replace-dialog))
	((eql ch #\4) (insert-date-string))
	((eql ch #\5) (make-tags-file-dialog))
	(t (quick-menu2))))

(define-key ctl-x-map #\q   'quick-menu)

C-x Q と押すと「1:新規作成 2:名前を付けて保存 3:置換 4:日付と時刻 5:TAGファイルの作成 : 」

と表示され1〜5を押すとコマンドが実行できるという(脳細胞の少ない私向きの^^;)
便利な機能です。^^;

ところで、これからが、質問なんですが、1〜5以外が押されたときに次のメニューを
出そうと思いまして(quick-menu2)

  (let ((x (call-interactive "c6:秘密機能 7:最終兵器 : ")))
    (cond ((...)

こんな感じでできないかと minubuf.lの中を覗いていたのですが、手がかりは見つかり
ませんでした。対話的置換のあたりも見てみたのですが、あれは(message)して
1文字入力してるだけでした^^;

minibufが " *Minibuf0*"っていう名前を持っていることはつきとめて、
通常のバッファー操作(insert等)で表示しようと思いましたが、minibufは特殊
扱いされている様子でした。

こんなアホなことは出来るのでしょうか?

------------------------------------------------------------
逸見雅人        Email   henmi@xxxxxxxxxxxxx
Masahito Henmi

Index Home