Emacs のキーには
(global-set-key (kbd "C-c r") 'query-replace)
のように既存関数を割り当てることができるが、引数が必要な関数や一連の処理を割り当てたい場合は以下のように lambda を使用することで割り当て可能(interactive も必要)。
(global-set-key (kbd "C-M-Z") (lambda () (interactive) (message "hoge")))
これを頻繁に記述するなら以下のようなマクロを定義するといいかもしれない。
(defmacro global-set-key-fn (key args &rest body)
`(global-set-key ,key (lambda ,args (interactive) ,@body)))
これで先ほどのキー割り当てを以下のように書ける。
(global-set-key-fn (kbd "C-M-Z") nil (message "hoge"))