LoginSignup
3
3

More than 5 years have passed since last update.

Emacs のキーに一連の処理を割り当てる方法(及び便利なマクロ)

Posted at

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"))
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3