让 zsh 向 emacs 报告目录

让 zsh 向 emacs 报告目录

来自emacs手册

与 Shell 模式不同,Term 模式不会通过检查您的输入来跟踪当前目录。但有些 shell 可以告诉 Term 当前目录是什么。这是由 bash 版本 1.15 及更高版本自动完成的。

zsh 似乎没有这样做,至少默认情况下没有。有我可以启用的选项吗?

答案1

在对 bash 源进行 grep 后,我发现了这一点:

static void
send_pwd_to_eterm ()
{
  char *pwd;

  pwd = get_string_value ("PWD");
  if (pwd == 0)
    pwd = get_working_directory ("eterm");
  fprintf (stderr, "\032/%s\n", pwd);
}

这与当前记录的内容有点不同term.el。看来我需要放入 .zshrc 才能使其正常工作如下:

if [ -n "$INSIDE_EMACS" ]; then
    chpwd() {
        print -P "\032/$(pwd)"
    }
fi

相关内容