Primeiro, um comentário: em zsh
(e btw. também em bash
& friends) você não pode usar argumentos em um alias. Use uma função:
# function hello() { echo $1 $3 }
# hello one two three
one three
Você altera o título na função chpwd()
, que é chamada sempre que você altera o diretório. Então, você precisa usar cd .
para atualizar seu título. Ou - seguindo sua abordagem -, sobrecarregue '' o comando ssh
com esta função para executar chpwd()
após o término da sessão ssh:
function ssh() { command ssh "$@"; chpwd }
Uma solução que eu prefiro é colocar o comando para alterar o título em precmd()
, que é executado antes que o prompt seja exibido. Eu defino por exemplo no meu ~/.zshrc
precmd () {
[[ -t 1 ]] && print -Pn "\e]0;%n@%m:%~\a"
}
para obter um título como user@host:/current/dir
, que é atualizado imediatamente ao se conectar a uma máquina remota (desde que haja um código semelhante em ~/.zshrc
) e ao retornar à sessão local.
(O [[ -t 1 ]]
verifica se a sessão está conectada a um terminal - não é tão importante.)