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

10

Sou iniciante no Emacs e gostaria de começar a adicionar algumas associações globais de teclas personalizadas para tarefas comuns como replace-string , replace-regex etc., que não as têm por padrão. Eu quero fazer boas escolhas e vejo alguns problemas:

  • Veja todas as minhas opções - Como posso ver toda a gama de teclas que são desvinculadas 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" para iniciar ligações personalizadas personalizadas?

  • Outras questões - Mais alguma coisa que eu deveria levar em consideração?

por Ian Mackinnon 23.11.2010 / 20:11

1 resposta

9

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

Quanto a ver o que está disponível, há a biblioteca unbound (consulte a primeira resposta à questão acima).

Uma convenção (obtida de minha resposta para essa pergunta é:

Você pode redefinir qualquer coisa, mas a convenção é usar Cc l (onde l é qualquer letra).

As a user, you can redefine any key; but it is usually best to stick to key sequences that consist of C-c followed by a letter (upper or lower case). These keys are "reserved for users," so they won't conflict with any properly designed Emacs extension. The function keys F5 through F9 are also reserved for users. If you redefine some other key, your definition may be overridden by certain extensions or major modes which redefine the same key.

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 faça suas associações de teclas no nível mais localizado possível. Por exemplo, se a funcionalidade fizer algo com uma linha de código, não faça uma ligação de chave global para ela, defina-a nos mapas de chaves apropriados ( c++-mode-map , ruby-mode-map , etc.).

No que diz respeito às suas tarefas específicas, você percebeu:

  • M -% também conhecido como query-replace
  • C-M -% também conhecido como query-replace-regexp

Além disso, quando você está pesquisando ( Cs ou CMs (e as variantes reversas)), você pode digitar M -% ( ou CM -% ) para inserir diretamente query-replace ( query-replace-regexp ) com a string de pesquisa como a coisa a ser substituída ... Muito útil.

    
por 23.11.2010 / 23:17