Existe alguma maneira de salvar uma macro de teclado no bash?

11

Eu gostaria de salvar permanentemente uma macro de teclado que gravei usando Cx ( e Cx) . Existe uma maneira fácil de "ver a fonte" para a minha macro recém-gravada para que eu possa ligá-lo a um atalho de teclado em ~ / .inputrc?

Eu achei que dump-macros faria isso, mas não parece ...

    
por mgalgs 07.06.2011 / 01:08

4 respostas

2

Acontece que realmente não é possível, isto é, não foi possível até hoje à noite!

Desde que eu estava curioso para cavar o código-fonte bash de qualquer maneira eu fui em frente e acrescentou esse recurso :). Veremos se os mantenedores do bash aplicam o meu patch .

    
por 14.10.2011 / 10:51
1

O melhor que consegui pensar é tentar:

echo >>.inputrc '<ctrl-x e>'

Ou se a macro tiver várias linhas, tente:

echo >>.inputrc <<EOF
<ctrl-x e>
EOF

Se você usou caracteres de controle, talvez queira colocar um sed lá para substituí-los pelos códigos de escape corretos para inputrc.

Em seguida, vá e edite a última linha para ter o prefixo e o sufixo corretos para o que você está tentando alcançar ...

    
por 18.06.2011 / 14:13
0

Adicione esta linha a .inputrc :

alias macro
    
por 26.06.2011 / 05:33
0

Parece que .inputrc permite que você apenas edite seus comandos. Eu tentei usar dump-macros também, mas não consegui fazê-lo funcionar, nem há muita documentação sobre isso. Talvez não funcione ou esteja obsoleto.

Se houvesse um comando como xev para ligações do emacs, isso seria útil. De qualquer forma, acho que sua melhor aposta é editar inputrc usando as diretrizes no primeiro link abaixo na parte inferior da página. É bem fácil de fazer.

O segundo link é um exemplo de arquivo inputrc para ajudar a descobrir como configurar macros.

Além disso, há também um comando legal chamado bind -P , que listará todas as suas macros.

http://www.gnu.org/software/bash/manual/html_node/Miscellaneous-Commands.html#Miscellaneous-Commands

Aqui está um exemplo de arquivo inputrc:

http://www.gnu.org/software/bash/manual/html_node/Sample-Init-File.html#Sample-Init-File

    
por 19.06.2011 / 09:19