Vinculações de teclas do tipo Emacs em todo o sistema?

27

Existe uma maneira de definir atalhos de teclado semelhantes ao Emacs (pelo menos o subconjunto mencionado abaixo) para todo o sistema operacional? Isso é possível em alguns aplicativos como o terminal, Emacs (veja a figura :) e, adicionalmente, através de plug-ins especiais em outros aplicativos (Eclipse), mas eu me acostumei tanto ao Cfr através do texto e nunca tive que pular para as setas que gostaria de poder fazer isso em todo o sistema para que eu possa fazê-lo sempre que estiver digitando - por exemplo, pesquisando músicas no Rhythmbox, digitando itens no painel ou no HUD, escrevendo e-mails no Thunderbird ou Gmail ... Os combos que mais me interessam são:

  • Cf - encaminhar
  • Cb - para trás
  • Ca - em casa
  • Ce - fim
  • Cd - excluir
  • Ck - excluir linha

(observação para usuários que não são do emacs - C significa Ctrl)

metakermit
fonte

Respostas:

15

Baseado em: https://superuser.com/a/516847/205010

  1. Instale o gnome-tweak-tool: sudo apt-get install gnome-tweak-tool

  2. Abra: gnome-tweak-tool

  3. Vá para Keyboard and Mousee mude Key ThemeparaEmacs

Eyal Levin
fonte
1
isso é bem legal, mas muitas coisas não funcionam, por exemplo, Cb, Ck etc. a solução provavelmente está puxando tudo para o emacs, ou seja, navegador, email etc., em vez de tentar empurrar as teclas para além do emacs
bph
Onde isso não funciona? No meu caso, funciona na maioria das vezes muito bem.
Eyal Levin
Parece que se um aplicativo implementa um atalho equivalente, isso tem precedência. O que é embaraçoso
bph
Não acho que isso aconteça para todos os aplicativos. Encontrei no Chrome algumas vezes que os atalhos globais do Emacs tinham precedência sobre os atalhos específicos de aplicativos da web.
Eyal Levin
meu caso de teste estava usando o yahoo mail e o gmail em um navegador firefox. nos dois casos, o Ca Ce Cf Cp Cn funcionou conforme o esperado, mas Cb alternou a fonte em negrito e Ck abriu uma caixa de diálogo de link. Então, para o meu aplicativo em particular, é um pouco imprevisível - vou ter que dar uma chance ao chrome e ver se é diferente
bph
14

Consegui resolver o problema usando o AutoKey , conforme recomendado nesta resposta . Algumas das minhas frases são:

content                     |   hotkey             |   description
---------------------------------------------------------------
<ctrl>+f                    |   <ctrl>+<alt>+f     | replace the find operation
<home>                      |   <ctrl>+a           | begining of line
<end>                       |   <ctrl>+e           | end of line
<left>                      |   <ctrl>+b           | back one letter
<right>                     |   <ctrl>+f           | forward one letter
<delete>                    |   <ctrl>+d           | delete one letter
<home><shift>+<end><delete> |   <ctrl>+k           | kill line

(Sim, a combinação de kill line foi desagradável de encontrar :)

Você pode continuar substituindo coisas, mas não quero que o remapeamento mental cresça muito (por exemplo, ctrl + n não abre uma nova janela, mas passa para a próxima linha). Ao todo, o AutoKey é um aplicativo legal!

Enfim, agora tenho a ergonomia do emacs de nunca ter que deixar as "teclas de letras" em todo o Ubuntu - em todas as caixas de texto que estou editando. Yeiii!

Atualização: à medida que me aprofundava no jogo com o AutoKey para ajustar tudo, fiz algumas alterações. Você pode ver minha configuração completa do AutoKey Ubuntu-Emacs (e instalá-la) no meu repositório git dotfiles .

metakermit
fonte
Então, tentei a palavra anterior <alt> + f, mas ela continuava em conflito com a abertura de um arquivo no emacs. Você enfrentou esse problema? como você resolveu isso?
Sambatyon 16/01
4

Existe outra solução que não envolve aplicativos de terceiros postados aqui emacs keybindings no ubuntu 12.04

dolzenko
fonte
O uso desse método não funcionará em aplicativos como o Thunderbird, onde Ctrl + F será interpretado como "Localizar String" em vez de "Mover o Cursor para a Frente".
precisa saber é o seguinte
@holocronweaver verdade, de fato, desisti de colocar as chaves do Emacs trabalhando no Thunderbird infelizmente, mas a maioria das outras entradas (principalmente no Chrome) quase funciona. Não posso deixar de sentir que a solução AutoKey também é caminho para intermináveis ​​manobras e frustrações :) Dito isso, você já tentou a solução proposta por kermit666 e, em caso afirmativo - funcionou para você?
dolzenko
Após algumas edições para adequá-lo ao meu gosto, a solução AutoKey funcionou bastante bem no Firefox e Thunderbird no Ubuntu 14.04. Ainda há mais testes a serem feitos.
21449 holocronweaver