
Estoy intentando vincular la doble pestaña al clear
comando solo si la entrada en la terminal está vacía en zsh Shell.
Lo que he logrado hasta este punto es eliminar siempre con doble pestaña pero quiero agregar la condición si es posible, agregando lo siguiente al .zshrc:
bindkey -s '\t\t' 'clear^M'
Tal vez, ¿necesito llamar a una función personalizada con la combinación de teclas para verificar si la entrada está vacía?
¿Alguna idea para solucionar esto?
¡Gracias!
Respuesta1
Este comportamiento se puede lograr con este código:
if ! typeset -f magic-double-tab-cmd >/dev/null; then
function magic-double-tab-cmd {
echo 'clear'
}
fi
function magic-double-tab {
# Only run magic-double-tab commands when the command line is empty and
# when on the first line (PS1)
if ! (( $#BUFFER )) && [[ "$CONTEXT" == start ]]; then
BUFFER=$(magic-double-tab-cmd)
zle accept-line -w
fi
}
zle -N magic-double-tab
bindkey '\t\t' magic-double-tab
Tomado de laentrada mágicarepositorio.
Este es un enfoque similar al que hace el complemento magic-enter, pero con una pestaña.