来自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