Obtém o zsh para reportar o diretório para o emacs

1

Do manual do emacs

Unlike Shell mode, Term mode does not track the current directory by examining your input. But some shells can tell Term what the current directory is. This is done automatically by bash version 1.15 and later.

Parece que isso não é feito por zsh, pelo menos não por padrão. Existe uma opção que eu possa ativar ou algo assim?

    
por ABP 01.04.2013 / 15:27

1 resposta

2

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
    
por 02.04.2013 / 07:22

Tags