2013年1月19日土曜日

[Emacs][Elisp]interactive 関数

コマンド実行時に質問してきてくれる interactive な関数の定義
(interactive "sWhat is your name: ")
これを実行すると mini-buffer に What is your name: と表示される。そこで文字列を入力すると結果が表示される
(interactive "sWhat your name: ")
("hoge")
数字を入力させる場合は下記のように n を先頭につける
(interactive "nInput your favorite number: ")
(5)
関数を定義して M-x 関数名 で実行すると mini-buffer に interactive で値を入力して渡すことができる
(defun add (a b)
  (interactive "nFirst argument:\nnSecond argument:")
  (setq ans (+ a b))
  (message "Ans: %d" ans))

add
M-x add を実行すると First argument:, Second argument: と mini-buffer に表示され、数値を入力する。計算結果は mini-buffer に出力される

0 件のコメント:

コメントを投稿