Если я знаю имя команды emacs, он говорит: «goto-line»; что, если я хочу узнать, связаны ли с этой командой какие-либо последовательности клавиш?
И наоборот, учитывая последовательность клавиш, как я могу найти ее имя команды?
Чтобы просто найти привязки клавиш для команды, вы можете использовать функцию 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
.C-h w
(илиF1-w
):where-is
RET somecommandname RETДелает именно то, что вы просите - перечисляет связанные ключи без дополнительной информации. :)
источник
Для интерактивного связывания команды с сочетанием клавиш (или последовательностью клавиш в терминах Emacs) см. Выбранный ответ.
Для программного получения команды, привязанной к заданной последовательности клавиш, используйте функцию
key-binding
или,lookup-key
которая принимает последовательность клавиш и возвращает связанную команду. Функцияkey-binding
- это то, чтоC-h k
использует.возвращает команду, привязанную к
C-h m
поиску во всех текущих раскладках. Функция выполняетlookup-key
поиск по одной раскладке: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
я бы рекомендовал взглянуть на него, чтобы сравнить функции.https://github.com/kai2nenobu/guide-key
источник