by shigemk2

当面は技術的なことしか書かない

Emacs Lispの関数を書こう

そう、関数です。キーバインドとして使える関数を書きます。

例。今のバッファのメジャーモードをミニバッファに出力する関数。

(defun buffer-major-mode()
  "This is functoin that shows major-mode."
  (interactive)
  (message "%s" major-mode))

(global-set-key (kbd "C-x x v") 'buffer-major-mode)

ポイント

  • defunは説明不要ですね
  • "This is functoin that shows major-mode."の部分は、describe-functionsなどでみると表示される関数のドキュメントです
  • interactiveは、関数をコマンドとして使えるようにするための関数です これがないと、関数がコマンドとして認識されません

参考

詳しい書き方はこっちのほうが詳しいと思いました。

Hello elisp World | taichino.com

ここにもinteractive is 何っていうのが書いてあります。

www.bookshelf.jp

GNU Emacs Lisp Reference Manual