Eu não sei como ajustar o sistema de conclusão, para que ele expanda .
sempre para ./
. Mas aqui está uma solução para o caso especial que você descreveu, ou seja, no início da linha de comando:
expand-or-complete-special-dot() {
if [[ $BUFFER == "." ]]; then
LBUFFER="./"
fi
zle expand-or-complete
}
zle -N expand-or-complete-special-dot
bindkey "^I" expand-or-complete-special-dot
Este é um wrapper para a função normal expand-or-complete
, que é (por padrão) vinculada a TAB
.