Emacs Lispを基礎から学ぶ (3): コマンドの定義
interactiveスペシャルフォームでコマンドを宣言
M-x ...でユーザがコマンドとして呼び出す関数を定義するには、関数定義の頭で(interactive)と宣言をすればよい。
この時、英数字1文字をinteractiveの引数として渡すと、ユーザーに指定したフォーマットで入力を要求するコマンドを作成できる(find-fileコマンドでファイル名の入力を要求されるのと同様)。
英数字1字に続く文字列は、コマンド実行時にミニバッファに表示されるプロンプト文字列となる。
また、ユーザー入力はその関数の引数として扱われる。
interactiveフォームに渡せる文字種と、対応する入力の種類は次の通り:
b | 既存バッファ名 |
B | バッファ名(新規含む) |
d | ディレクトリ名 |
f | 既存ファイル名 |
F | ファイル名(新規含む) |
n | 数値 |
s | 文字列 |
r | リージョン |
練習コード
以上!