Se eu souber o nome de um comando do emacs, diga "goto-line"; e se eu quiser perguntar se há alguma sequência de teclas associada a este comando?
E vice-versa, dada uma sequência de teclas, como posso encontrar o nome do comando?
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 fazerC-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 aM-x where-is
.C-h k
é equivalente aM-x describe-key
.C-h f
é equivalente aM-x describe-function
.C-h v
é equivalente aM-x describe-variable
.C-h ?
é equivalente aM-x help-for-help
. Observe também quef1
pode ser usado em vez deC-h
.C-h w
(ouF1-w
):where-is
RET algumnome de comando RETFaz exatamente o que você está pedindo - lista as chaves vinculadas sem informações adicionais. :)
fonte
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
oulookup-key
que pega uma sequência de teclas e retorna seu comando vinculado. A funçãokey-binding
é o queC-h k
usa.retorna o comando vinculado
C-h m
pesquisando em todos os mapas de teclado atuais. A funçãolookup-key
pesquisa em um único mapa de teclado: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 cominternal
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 dewhere-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.fonte
where-is-internal
sugere que não há problema em usá-lo. Além disso, convencionalmente usamos um formato comowhere-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 )
Qual chave
Isso mostra as ligações antes de você precisar delas. Insira um prefixo, por exemplo
C-x
ouC-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 aoccur
usar a string de pesquisa atual, eu não sabia disso há muitos anos usando o Emacs. Ter porwhich-key
perto me ajudou a descobrir muitas joias raras no Emacs.https://github.com/justbur/emacs-which-key
Chave guia
A tecla Guia funciona de maneira muito semelhante à
which-key
que recomendo dar uma olhada nela para comparar os recursos.https://github.com/kai2nenobu/guide-key
fonte