Depois de percorrer a fonte do bash, encontrei isto:
static void
send_pwd_to_eterm ()
{
char *pwd;
pwd = get_string_value ("PWD");
if (pwd == 0)
pwd = get_working_directory ("eterm");
fprintf (stderr, "2/%s\n", pwd);
}
Isso é um pouco diferente do que está documentado atualmente em term.el
. Parece que tudo que eu preciso colocar no meu .zshrc para fazer isso funcionar é o seguinte:
if [ -n "$INSIDE_EMACS" ]; then
chpwd() {
print -P "2/$(pwd)"
}
fi