Não consigo encontrar uma maneira de fazer isso no bash . Então, existe uma maneira de definir um atalho bash readline que inserirá uma string gerada dinamicamente na posição do cursor?
Por exemplo, eu quero inserir a data:
bind '"\C-xx": my-dynamical-date'
aaa bbb
--------
^ cursor is here
# After pressing "\C-xx":
aaa Sun Apr 22 22:19:00 CST 2018 bbb
------------------------------------
^ cursor is here
Então, como definir o comando readline my-dynamical-date?
Meio bobo, mas poderia ser algo assim:
Ele primeiro insere um literal
$(date)
, depois chamashell-expand-line
e avança 5 palavras.Para salvar a combinação de teclas, adicione o seguinte a
inputrc
:Você pode escrever uma função que edita as variáveis readline
READLINE_POINT
eREADLINE_LINE
. Por exemplo, defina no seu.bashrc
:Isso usa a
-x
opção de ligação para chamar sua função. Não conheço nenhuma maneira de colocar o equivalente em um~/.inputrc
arquivo. (Você certamente não pode simplesmente começar a linha com-x
, por exemplo).