Чи є стандартний / рекомендований синтаксис для визначення прив’язки клавіатури?


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)метод через послідовність, в якій можна визначити комбінації клавіш .. не потрібно пам’ятати, коли і коли не слід уникати матеріалів.
Каушал Моді

Відповіді:


6

Не існує єдиного стандартного способу, оскільки існують різні випадки використання.

Якщо ви пишете такий код вручну, наприклад, у своєму файлі init, то, можливо, ви віддасте перевагу (kbd ...)формату, оскільки аргумент kbdвикористовує те саме позначення, яке використовує Emacs, коли він спілкується з вами про прив'язку ключів ( *Help*наприклад, наприклад).

Але якщо ви створюєте прив'язки за допомогою Emacs Lisp, то, можливо, ви віддасте перевагу позначенням векторів, зокрема [(meta r)]і т. Д., Оскільки це досить простіше в управлінні.

Деякі люди вважають простий струнний підхід архаїчним, але він зручний, коли ключ простий: "a"простіший і принаймні такий, як читабельний (kbd "a"). Але прості рядки важче читати / використовувати, коли справа доходить до клавіш модифікаторів тощо.


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

це "рідний" спосіб. Усі інші побудовані поверх цього, в основному.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.