Ответы:
Чтобы просто найти привязки клавиш для команды, вы можете использовать функцию emacs help "where-is"
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 не могут использовать ее в своих файлах инициализации, но эта функция, имеющая строку документации, кажется, предполагает иное. Любой, кто рассматривает возможность использования, 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/… . Его следует использовать для внутренних функций C.
Старый вопрос, но для новых читателей есть еще несколько хороших способов увидеть привязки клавиш
M-x describe-bindingsПеречисляет все доступные привязки, используйте isearch, происходить и т. Д., Чтобы эффективно использовать этот список.
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я бы рекомендовал взглянуть на него, чтобы сравнить функции.