Ответы:
Чтобы просто найти привязки клавиш для команды, вы можете использовать функцию 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
я бы рекомендовал взглянуть на него, чтобы сравнить функции.