global-set-keyとかで引数付きの関数をバインドしたいとき

M-l(downcase-word)やM-u(upcase-word)は現在のカーソル位置の後の単語を小文字にしたり大文字にしたりするのです。

英文やプログラムを修正するときは連打できて便利かもですが、僕の場合はその用途よりも、プログラムを作ってて全部大文字の定数の識別子とか入力するときに、

hogehoge

ってとりあえず打ってからM-uで

HOGEHOGE

ってなってくれたらシフト押しっぱなしにしなくていいので楽だなぁと思ったのです。

upcase-wordとかは引数を-1とかにすると、これをしてくれるのですがそれをどうしようかと思って最初は

(defun my-upcase-word ()
    (interactive)
    (upcase-word -1))
(global-set-key (kbd "M-u") 'my-upcase-word)

とかしたんですが、

(global-set-key (kbd "M-u") (lambda () (interactive) (upcase-word -1)))

のほうがいいなと思ったのでメモとして残します。

============================================================================
追記 10/26
案の定同じようなことをしてる人がいました。

http://at-aka.blogspot.com/2006/07/emacs.html