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

11

Gostaria de salvar permanentemente uma macro de teclado que gravei usando C-x (e C-x ). Existe uma maneira fácil de "ver a fonte" da minha macro recém-gravada para que eu possa vinculá-la a um atalho de teclado em ~ / .inputrc?

Eu pensei dump-macrosque faria isso, mas não parece ...

mgalgs
fonte
Bem, eu vou ser amaldiçoado. Eu não sabia sobre esse recurso.
Charlie Martin
Eu uso o gnome-terminal e o gconf-editor para configurar atalhos de teclado.
saeedgnu

Respostas:

3

Acontece que realmente não é possível, ou seja, não era possível até hoje à noite!

Como eu estava curioso para pesquisar o código-fonte do bash, continuei e adicionei esse recurso :). Vamos ver se os mantenedores do bash aplicam meu patch .

mgalgs
fonte
1

O melhor que pude 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, pode colocar um sed lá para substituí-los pelos códigos de escape corretos para inputrc.

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

Dobes Vandermeer
fonte
salve uma etapa, edite .inputrc, posicione para onde quiser que a macro e Cx e 'digitem'. Mas sim, eu diria que essa é a melhor maneira, é claro, você pode colocá-la onde quiser, são apenas algumas teclas. Se você não estiver no 'modo / local / programa certo', provavelmente receberá entradas incompreendidas. Mas seria de esperar que, se você não usasse a macro no lugar certo, certo?
lornix 18/09/11
0

Adicione esta linha a .inputrc:

alias macro
FALL3N
fonte
oh, obrigado por corrigir isso, meu mal: /
FALL3N 26/06
0

Parece que .inputrc permite editar apenas seus comandos. Tentei usar dump-macrostambé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 xevpara ligações do emacs, isso seria útil. De qualquer forma, acho que sua melhor aposta é editar o inputrc usando as diretrizes no primeiro link abaixo, na parte inferior da página. É bem fácil de fazer.

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

Como um aparte, há também um comando interessante chamado bind -Pque listará todas as suas macros.

http://www.gnu.org/software/bash/manual/html_node/Miscundry-Commands.html#Misc 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

Dennis
fonte
Sim, a questão toda é para não ter que escrever a macro com a mão, mas em vez imprimir o que eu acabou de gravar ...
mgalgs
Acontece que dump-macrossimplesmente imprime o que suas macros definidas no momento produziriam.
mgalgs