Respostas:
Para encontrar apenas as combinações de teclas para um comando, você pode usar o recurso "onde está" da ajuda do emacs
C-h w command-name
Se várias ligações forem definidas para o comando, todas serão listadas.
Para o inverso, dada uma sequência de teclas, você pode digitar
C-h k key-sequence
Para obter o comando que seria executado.
Você pode obter informações detalhadas sobre um comando, também qualquer função não interativa definida, digitando
C-h f function-name
O que lhe dará informações detalhadas sobre uma função, incluindo quaisquer atalhos de teclado para ela e
C-h v variable-name
fornecerá informações sobre qualquer variável (ligada). Os mapas-chave são mantidos em variáveis, porém os códigos-chave são armazenados em formato bruto. Tente C-h v isearch-mode-map
um exemplo.
Para obter mais ajuda sobre como obter ajuda, você pode digitar
C-h ?
C-h w <function name>
para saber exatamente onde está a chave, não a documentação completa. Por outro lado, você também pode fazer C-h c <key sequence>
apenas para saber qual função está associada a uma sequência de teclas.
C-h
a algo mais em seus gerenciadores de janela: C-h w
é equivalente a M-x where-is
. C-h k
é equivalente a M-x describe-key
. C-h f
é equivalente a M-x describe-function
. C-h v
é equivalente a M-x describe-variable
. C-h ?
é equivalente a M-x help-for-help
. Observe também que f1
pode ser usado em vez de C-h
.
Para obter interativamente o comando vinculado a um atalho de teclado (ou uma sequência de teclas nos termos do Emacs), consulte a resposta selecionada.
Para vincular programaticamente o comando a uma determinada sequência de teclas, use a função key-binding
ou lookup-key
que pega uma sequência de teclas e retorna seu comando vinculado. A função key-binding
é o que C-h k
usa.
(key-binding (kbd "C-h m"))
retorna o comando vinculado C-h m
pesquisando em todos os mapas de teclado atuais. A função lookup-key
pesquisa em um único mapa de teclado:
(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
Para obter programaticamente todas as sequências de teclas vinculadas a um determinado comando, where-is-internal
é provavelmente a função a ser usada. O nome da função que termina com internal
parece sugerir que não é para usuários do Emacs usarem em seus arquivos init, mas esta função com uma docstring parece sugerir o contrário. Qualquer pessoa que esteja considerando o uso de where-is-internal
deve primeiro verificar se o remapeamento das chaves pode atingir seu objetivo.
Uma alternativa para encontrar as chaves que estão vinculadas a um comando específico (por exemplo, forward-char
) é substitute-command-keys
(por exemplo, (substitute-command-keys "\\[forward-char]")
). Isso é especialmente útil em textos maiores.
where-is-internal
sugere que não há problema em usá-lo. Além disso, convencionalmente usamos um formato como where-is--internal
(observe o traço duplo) para funções “privadas”.
-internal
está descrito lá: gnu.org/software/emacs/manual/html_node/elisp/… . Deve ser usado para funções C internas.
Uma pergunta antiga, mas para o benefício dos novos leitores, existem algumas outras maneiras interessantes de ver as combinações de teclas
M-x describe-bindings
Lista todas as ligações disponíveis atualmente, use isearch, ocorrer, etc. para fazer um bom uso desta lista.
M-x describe-prefix-map
Isso mostra todas as ligações disponíveis no modo atual, você pode usar o buffer de exibição como faria com qualquer outro buffer Emacs somente leitura, por exemplo, você pode pesquisar livremente por strings, etc.
M-x describe-mode
Além de fornecer informações gerais sobre o modo atual, também listará todas as combinações de teclas disponíveis.
M-x describe-minor-mode
Você será solicitado a inserir o nome de um modo menor e, em seguida, serão mostradas informações e combinações de teclas para esse modo menor.
NOTA : Os exemplos abaixo usam pacotes adicionais (disponíveis em MELPA )
Isso mostra as ligações antes de você precisar delas. Insira um prefixo, por exemplo C-x
ou C-c
e uma lista das ligações disponíveis nesse prefixo será exibida.
Você também pode ver uma lista de combinações de teclas disponíveis no modo atual usando:
M-x which-key-show-top-level
É útil vincular which-key-show-top-level
a um acorde de tecla de sua escolha, para que você possa ver as teclas disponíveis em qualquer lugar.
Por exemplo, C-s
( isearch-forward
) tem um extenso mapa de teclas que geralmente é desconhecido. por exemplo, M-s o
começa a occur
usar a string de pesquisa atual, eu não sabia disso há muitos anos usando o Emacs. Ter por which-key
perto me ajudou a descobrir muitas joias raras no Emacs.
https://github.com/justbur/emacs-which-key
A tecla Guia funciona de maneira muito semelhante à which-key
que recomendo dar uma olhada nela para comparar os recursos.