Emacs: como escolher boas associações de teclas personalizadas?

10

Eu sou um iniciante Emacs e eu gostaria de começar a adicionar alguns atalhos de teclado personalizado globais para tarefas comuns como replace-string, replace-regex, etc. que não têm-los por padrão. Quero fazer boas escolhas e vejo alguns problemas:

  • Veja todas as minhas opções - Como posso ver toda a gama de teclas que não estão ligadas em todos os modos que uso regularmente?

  • Compatibilidade / convenção - Existem ligações não oficiais comuns ou uma chave comum de "espaço do usuário" com a qual iniciar ligações personalizadas pessoais?

  • Outras questões - Qualquer outra coisa que eu deveria estar tomando em consideração?

Ian Mackinnon
fonte

Respostas:

9

Tente dar uma olhada nesta pergunta no SO: existem combinações de teclas emacs reservadas para comandos personalizados?

Quanto a ver o que está disponível, há a unboundbiblioteca (veja a primeira resposta à pergunta acima).

Uma convenção (retirada da minha resposta a essa pergunta ) é:

Você pode redefinir qualquer coisa, mas a convenção é usar C-c l (onde lestá qualquer letra).

Como usuário, você pode redefinir qualquer chave; mas geralmente é melhor manter as seqüências principais que consistem em C-c seguidas de uma letra (maiúscula ou minúscula). Essas chaves são "reservadas para usuários", para que não entrem em conflito com nenhuma extensão do Emacs projetada corretamente. As teclas de função F5através F9também estão reservados para os usuários. Se você redefinir outra tecla, sua definição poderá ser substituída por determinadas extensões ou modos principais que redefinem a mesma tecla.

Lembre-se de que as combinações de teclas são diferentes em cada um dos vários modos (principal e secundário); portanto, o que está disponível em um buffer não está necessariamente disponível em outro. E torne suas associações de teclas no nível mais localizado possível. Por exemplo, se a funcionalidade faz algo para uma linha de código, não fazer uma ligação para ela chave global, defini-lo nos keymaps apropriados ( c++-mode-map, ruby-mode-map, etc.).

Quanto às suas tarefas específicas, você notou:

  • M-% aka query-replace
  • C-M-% aka query-replace-regexp

Além disso, quando estiver pesquisando ( C-sou C-M-s(e as variantes reversas)), você pode digitar M-%(ou C-M-%) para inserir diretamente query-replace( query-replace-regexp) com a sequência de pesquisa como a alternativa a substituir ... Bastante útil.

Trey Jackson
fonte