Myślę, że uruchomienie zewnętrznego skryptu nie jest możliwe (a przynajmniej bardzo hackish), aby w wierszu zachęty można było wszystko edytować
Mając to na uwadze, można rozszerzyć zle (edytor wiersza poleceń zsh) o własne funkcje, tak zwane widgety.
Dowolny widget zdefiniowany przez użytkownika ma dostęp do BUFFER
, który zawiera bufor edycji i może być również modyfikowany.
Oto krótki prototyp:
function example () {
if [[ $BUFFER = 'server' ]]; then
LBUFFER='ssh [email protected] '
else
zle accept-line
fi
}
zle -N example
bindkey '^M' example
zle -N example
tworzy nowy widżet o nazwie example
i odwzorowuje ją na funkcję o tej samej nazwie. bindkey '^M' example
mapy Kontrola + M , znany również jako Powrót , do widgetu example
. Więc za każdym razem po prostu wpisz „serwer” i naciśnij Powrót zostaje zastąpiony przez ssh [email protected]
a kursor jest umieszczony na końcu w celu dalszej edycji, podczas gdy każda inna linia jest wykonywana / akceptowana jak jest.