Como procurar ajuda para uma sequência de teclas que não consigo digitar

8

Eu sei que posso procurar ajuda para uma sequência de teclas usando C-h k <key sequence>, mas eu uso o Emacs no terminal e meu emulador de terminal não passa todas as sequências de teclas para o Emacs. Às vezes, vejo a notação para uma determinada sequência de teclas escrita em algum lugar sem explicação, e quero pesquisar o que faz, mas não consigo nem digitar. Existe um equivalente para C-h konde eu possa digitar a sequência de teclas (como literalmente C-<character>)?

asmeurer
fonte

Respostas:

15

Avalie o seguinte usando eval-expression( M-:) ou em um buffer temporário:

(describe-key (kbd "C-<whatever>"))
shosti
fonte
1
Aliás, você pode encontrar esta solução usando C-h k C-h k. (Funciona em meu terminal.)
Kevin
1
Ótimo. Na verdade, é melhor usar M-: ou avaliá-lo no seu buffer atual, pois o atalho do teclado pode ser específico do modo.
asmeurer 26/09
9

Se você não puder usar uma combinação de teclas específica devido ao seu terminal, poderá falsificá-la simulando manualmente o modificador de teclas. As seguintes combinações funcionam exatamente como se você tivesse usado a tecla modificadora correspondente:

C-x @ a     alt
C-x @ m     meta
C-x @ c     control
C-x @ h     hyper
C-x @ s     super (lowercase s)
C-x @ S     shift (uppercase S)

Por exemplo, se você não pode digitar C-apor qualquer motivo, C-x @ c aé a mesma coisa. Se S-<return>não funcionar no seu terminal, C-x @ S RETfuncionará. Essas combinações de teclas também funcionam com o C-h kprefixo da ajuda.

Sue D. Nymme
fonte
Existem casos em que você pode digitar, C-xmas não C-a? Tudo isso requer a capacidade de emitir C-x. Ser capaz de usar modificadores "hiper" ou "super" sem uma chave dedicada parece que pode ser útil. Eu encontrei um terminal que não foi criado para mapear a tecla "alt" para "meta", mas eu trabalhei em torno dele (a contragosto) usando "ESC"
nispio
2
C-aé um mau exemplo. Um mais provável seria C-A(ou C-S-a), pois os terminais não parecem gostar de control + shift.
asmeurer 26/09
Parece-me que me lembro que screen(1), sob , C-aé ordenado que seja uma espécie de chave multiplexadora. Mas eu não uso screenhá muito tempo, então posso estar me lembrando errado.
Sue D. Nymme 26/09
2

Você também pode usar C-h btodas as combinações de teclas, incluindo botões do mouse e tudo mais.

shapr
fonte
Após a describe-bindingsjanela de ajuda aparecer, você também pode usar isearchpara procurar a representação em texto sem formatação de uma sequência de teclas e a função à qual está vinculada. Além disso, o pacote helm-descbindingspermitirá navegar em todas as ligações em um buffer de leme.
Nispio 26/09/14
0

Eu não conhecia nenhuma dessas soluções mais específicas e elas provavelmente funcionam melhor se você deseja o comando exato que é executado por uma chave.

No entanto, para obter uma dica mais geral sobre como encontrar ajuda, se você tem uma ideia vaga sobre o que a ligação de teclas está fazendo, mas deseja obter mais detalhes, usei C-h f(ou describe-function) o preenchimento de guias para tentar encontrar o nome da função, que geralmente funciona, e a ajuda informará se essa função tem uma ligação. E quando isso não funcionou, eu usei C-h a(ou apropos-command) e digitei em alguns termos que pensei que poderiam estar relacionados e, surpreendentemente, tive muito sucesso ao encontrar o comando correto para a ligação de chaves. Outra boa opção é C-h m(ou describe-mode) e observe todas as combinações de teclas para o modo atual. Isso também pode ser usado como termos úteis para usar em uma ou nas duas técnicas de pesquisa anteriores.

b4hand
fonte