Como criar comandos de ligação de teclado entre plataformas?

1

Gostaria de ter os mesmos atalhos de teclado em todos os terminais que uso. Como eles não têm o mesmo * nix, e como os terminais podem ser muito diferentes, estou procurando uma maneira razoavelmente portátil de obter atalhos de teclado de um terminal * nix (pelo menos suportado por uma instalação padrão do Ubuntu 12.04) para outros terminais (somente Bash).

Ou seja, estou tentando gerar comandos em um terminal para executar em outro terminal , a fim de usar os mesmos atalhos de teclado no segundo terminal . Especialmente coisas como Alt - Del (deletar a palavra à direita do cursor) e Ctrl - Esquerda ( mova o cursor uma palavra para a esquerda), que em alguns hosts em que trabalho simplesmente imprime o código de escape em vez de executar as ações esperadas.

Isso também serve como um precursor para possivelmente alterar o .inputrc no host de destino. Os pontos importantes são poder

  1. Descobrir quais atalhos de teclado estão definidos no meu host local.
  2. Descobrir se algum atalho comumente usado não está definido no host remoto.
  3. Copie as definições de atalho para o host remoto.
  4. Verifique se os atalhos funcionam como esperado no host remoto.
  5. Tenha certeza de que os atalhos também funcionariam em um terceiro host , possivelmente com versões muito antigas do Bash e ferramentas padrão como grep e sed .
por l0b0 17.10.2012 / 15:22

1 resposta

0

A solução atual é a seguinte:

bind -p | grep -ve '^$' -e '^#' -e 'self-insert$' | sed -e "s/\(.*\)/bind ''/" | tr -s '\n' ';'

Isso produz uma única linha como esta:

bind '"\C-g": abort';bind '"\C-x\C-g": abort';[...];bind '"\e\C-y": yank-nth-arg';bind '"\ey": yank-pop';

Isso parece funcionar, mas não tenho certeza se é portátil.

    
por 17.10.2012 / 15:25