私は1つの引数(これまでのところ良い)を取るElisp関数を持っています。この1つの引数は、リストからの項目であると考えられます。リストからのElisp関数の選択引数
リストを「選択バッファ」(diredなど)の種類で表示する方法はありますか。ユーザーは項目を手動で入力する代わりに項目をナビゲートしてEnterキーを押して選択できます?
私は1つの引数(これまでのところ良い)を取るElisp関数を持っています。この1つの引数は、リストからの項目であると考えられます。リストからのElisp関数の選択引数
リストを「選択バッファ」(diredなど)の種類で表示する方法はありますか。ユーザーは項目を手動で入力する代わりに項目をナビゲートしてEnterキーを押して選択できます?
これを行う通常の方法は、completing-read
です。次にminibuffer-completion-help
と呼ぶを使用して、すぐに*Completions*
バッファをポップアップして、ユーザーが自分の選択肢をクリックできるようにします。あなたが探していることはcompleting-read
ある
私が正しく質問を理解している場合、あなたはこのような何かを探しています:
(defun foo (list)
(interactive)
(let ((arg (ido-completing-read "Select from list: " list))))
...)
選択プロセスは、変数diredのようにではなく、Emacsユーザがido
か一方を使用してリストから選択することが一般的です類似の選択肢。あなたの検索範囲を狭めることができます、代替と長いなどの間を移動します。あなたがカスタマイズする可能性のある設定を感じたい場合は、M-x customize-group RET idoを入力します。
:
(defun foo (arg)
(interactive (list (completing-read ...)))
....)
私は物事のこの種のポップアップメニューを使用したい:
(x-popup-menu
(list '(50 50) (selected-frame)) ;; where to popup
(list "Please choose" ;; the menu itself
(cons "" (mapcar (function (lambda (item) (cons item item)))
your-list-of-strings))))
ところで、1はラ共通à(mapcar 'cons your-list-of-strings your-list-of-strings)
を使用したいですLispですが、elispはmapcarで単項関数しか使用しません:-(