キーボードバインディングを定義するための標準/推奨構文はありますか?


10

キーボードバインディングを定義するために、以下のすべてを見てきました。これらはすべて機能します(少なくともMS Windowsでは)。同じことをする別の方法があるかどうかわかりません。
キーボードバインディングを定義するための標準的な方法または推奨される方法があるかどうか、およびこれらのいくつかを回避することが推奨されるかどうかを考えています。

(global-set-key "\M-r" 'some-command)
(global-set-key [(meta r)] 'some-command)
(global-set-key [?\M-r] 'some-command)
(global-set-key (kbd "M-r") 'some-command)

1
推奨される構文があると(global-set-key (kbd "M-r") 'some-command)は思えませんが、キーの組み合わせを定義できる一貫性があるため、個人的にはこのメソッドが好きです。
Kaushal Modi 2015

回答:


6

さまざまなユースケースがあるため、単一の標準的な方法はありません。

たとえばinitファイルでそのようなコードを手動で記述している場合は、Emacsがキーバインディングについて(たとえば)と通信するときにEmacsが使用するのと同じ表記法(kbd ...)kbd使用するので、フォーマットが優先される場合があります*Help*

ただし、Emacs Lispを使用してバインディングを作成している場合は、特にベクトル表記[(meta r)]を使用するほうが管理がかなり簡単になるため、特にそうである場合があります。

一部の人々は、単純な文字列のアプローチは時代遅れであると考えますが、キーがシンプルであるときには便利です:"a"として、簡単かつ少なくとも読めるようです(kbd "a")。ただし、修飾キーなどに関しては、単純な文字列の方が読み取りや使用が困難です。


6
(global-set-key [?\M-r] 'some-command)

「ネイティブ」な方法です。他のすべては基本的に、この上に構築されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.