http://www.gentei.org/~yuuji/elisp/elisplec.html#SEC1
emacs起動
$ emacs
C-x bでデフォルトのバッファであるscratchバッファが起動
(C-x C-bやC-x C-fで開くのもOK)
;; This buffer is for notes you don't want to save, and for Lisp evaluation. ;; If you want to create a file, visit that file with C-x C-f, ;; then enter the text in that file's own buffer.
以下を記述
(defun nakamura-mode() (interactive) (setq major-mode 'nakamura-mode) (setq mode-name "中村くんみてるー??モード☆") (setq nakamura-map (make-keymap)) (define-key nakamura-map "n" 'print_nakamura) (defun print_nakamura() (interactive) (insert "Hello, Nakamura!\n") ) (use-local-map nakamura-map) )
最後の閉じ括弧の右でCtrl-jかM(ESC) C-xを入力すると
defunしたS式が評価される。
これでNakamura-modeがEmacsに読み込まれた。
Nakamura-modeに切り替えるには
M-x nakamura-mode
を入力。(S式を評価した後だと補完が効く)
Nキーを押すと"Hello, Nakamura!"が入力される。
(追記)
lambda式を使うと以下のように書ける。
(defun namakura-mode() (interactive) (setq major-mode 'nakamura-mode) (setq mode-name "中村くんみてるー??モード☆") (setq nakamura-map (make-keymap)) (define-key nakamura-map "n" (lambda() (interactive) (insert "Hello, Nakamura!\n"))) (use-local-map nakamura-map)