Eu acho que não é possível (ou pelo menos muito hackish) rodar um script externo, de modo que qualquer coisa seja colocada no prompt para edição adicional
Dito isto, é possível estender o zle (editor de linha de comando do zsh) com suas próprias funções, os chamados widgets.
Qualquer widget definido pelo usuário tem acesso a BUFFER
, que contém o buffer de edição e também pode ser modificado.
Aqui um pequeno protótipo:
function example () {
if [[ $BUFFER = 'server' ]]; then
LBUFFER='ssh [email protected] '
else
zle accept-line
fi
}
zle -N example
bindkey '^M' example
zle -N example
cria um novo widget chamado example
e o mapeia para a função com o mesmo nome. bindkey '^M' example
maps Controle + M , também conhecido como Retorna , para o widget example
. Então toda vez que você simplesmente digitar "servidor" e pressionar Retornar ele será substituído por ssh [email protected]
e o cursor será colocado no final para edição posterior, enquanto qualquer outra linha será executada / aceita como é. / p>