Відповіді:
Щоб просто знайти ключові прив’язки для команди, ви можете скористатися функцією довідки emacs "де-є"
C-h w command-name
Якщо для команди встановлено кілька прив'язок, вони будуть перелічені в списку.
Для зворотного, заданого послідовності ключів, ви можете ввести
C-h k key-sequence
Щоб отримати команду, яка би виконувалася.
Ви можете отримати детальну інформацію про команду, також будь-яку неінтерактивну функцію, визначену, ввівши
C-h f function-name
Це дасть вам детальну інформацію про функцію, включаючи будь-які ключові прив’язки до неї та
C-h v variable-name
дасть вам інформацію про будь-яку (зв'язану) змінну. Карти ключів зберігаються у змінних, проте коди ключів зберігаються у необробленому форматі. Спробуйте C-h v isearch-mode-map
для прикладу.
Щоб отримати додаткову допомогу щодо отримання допомоги, ви можете ввести
C-h ?
C-h w <function name>
можете знати, де саме знаходиться ключ, а не повну документацію. І навпаки, ви можете також C-h c <key sequence>
просто знати, яка функція пов'язана з ключовою послідовністю.
C-h
з чимось іншим у своїх віконних менеджерах: C-h w
рівнозначно M-x where-is
. C-h k
еквівалентно M-x describe-key
. C-h f
еквівалентно M-x describe-function
. C-h v
еквівалентно M-x describe-variable
. C-h ?
еквівалентно M-x help-for-help
. Також зверніть увагу, що f1
можна використовувати замість C-h
.
Для інтерактивного отримання команди, прив'язаної до комбінації клавіш (або послідовності клавіш у термінах Emacs), див. Обрану відповідь.
Для програмно отримання команди , пов'язану з даною послідовністю клавіш, використовуйте функцію key-binding
або , lookup-key
що грає ключову послідовність і повертає пов'язану команду. Функція key-binding
- це те, що C-h k
використовує.
(key-binding (kbd "C-h m"))
повертає команду, пов'язану з C-h m
пошуком у всіх поточних картах. Функція здійснює lookup-key
пошук в одній картці:
(lookup-key (current-global-map) (kbd "TAB")) ; => indent-for-tab-command
(lookup-key org-mode-map (kbd "TAB")) ; => org-cycle
(lookup-key text-mode-map (kbd "TAB")) ; => nil
(lookup-key isearch-mode-map (kbd "TAB")) ; => isearch-printing-char
Для програмного отримання всіх ключових послідовностей, прив’язаних до даної команди, where-is-internal
ймовірно, використовується функція. Назва функції, що закінчується символом, internal
начебто говорить про те, що користувачі Emacs не використовують їх у своїх файлах init, але ця функція, що має доктрину, здається, говорить про інше. Кожен, хто розглядає можливість використання, where-is-internal
повинен спочатку перевірити, чи можна замінити клавіші перезавантаження, а не досягти своєї мети.
Альтернативою для пошуку ключів, які пов'язані з певною командою (наприклад, forward-char
), є substitute-command-keys
(наприклад, (substitute-command-keys "\\[forward-char]")
). Це особливо корисно у великих текстах.
where-is-internal
стверджувати, що це нормально. Крім того, ми звичайно використовуємо формат на зразок where-is--internal
(зверніть увагу на подвійний тире) для "приватних" функцій.
-internal
описано там: gnu.org/software/emacs/manual/html_node/elisp/… . Його слід використовувати для внутрішніх функцій С.
Старе питання, але на користь нових читачів, є ще деякі приємні способи побачити ключові прив’язки
M-x describe-bindings
Перераховує всі наявні в даний час прив’язки, використовує пошук, відбуватися тощо, щоб добре використати цей список.
M-x describe-prefix-map
Це показує всі прив’язки, доступні в поточному режимі, ви можете використовувати буфер дисплея, як і будь-який інший буфер Emacs, який читається лише зараз, наприклад, ви можете вільно шукати рядки тощо.
M-x describe-mode
Окрім загальної інформації про поточний режим, він також перелічить усі ключові прив’язки.
M-x describe-minor-mode
Вам буде запропоновано ввести ім'я другорядного режиму, а потім відобразиться інформація та прив’язки клавіш для цього другорядного режиму.
ПРИМІТКА . У наведених нижче прикладах використовуються додаткові пакети (доступні від MELPA )
Це показує вам прив'язки безпосередньо перед необхідністю. Введіть, наприклад, префікс C-x
або, C-c
і буде показаний список прив’язок, наявних у цьому префіксі.
Ви також можете переглянути список основних прив'язок, доступних у поточному режимі, скориставшись:
M-x which-key-show-top-level
Корисно прив’язати which-key-show-top-level
до ключового акорда на ваш вибір, щоб ви могли переглянути клавіші, доступні з будь-якого місця.
Наприклад, C-s
(isearch-forward
) має велику карту ключів, яка часто невідома. наприклад, M-s o
починає occur
використовувати поточний рядок пошуку, про це я не знав багато років використання Emacs. Поселення which-key
допомогло мені відкрити багато рідкісних дорогоцінних каменів у Emacs.
https://github.com/justbur/emacs-which-key
Керівний ключ працює приблизно так само, як і which-key
я рекомендував би переглянути її для порівняння функцій.