把它放在你的.zshrc中:
chpwd() { print -P "\033AnSiTc %d" }
print -P "\033AnSiTu %n"
print -P "\033AnSiTc %d"
每次pwd更改时都会运行chpwd()函数.以%d结尾的行是允许您跟踪当前目录的行 - 我在函数外部重复它以确保在zsh首次初始化时运行它.但是Emacs要求我们首先告诉它当前用户是谁(以%n结尾的行).
这实际上是在term.el中解释的,如果你使用的是Ubuntu,它应该在/ usr/share/emacs // lisp中.
希望这可以帮助.
对于这个问题有多种解决方案。我碰巧更喜欢我的实现,它将提示更改为包含当前路径,Emacs 可以识别并使用它来获得您想要的行为。此外,我的解决方案隐藏了包含路径的提示部分,因为我觉得它很难看。
我的解决方案可以在博客文章中找到:Emacs Tip #25 Shell Dirtrack By Prompt。
但是,可以在 Emacs Wiki 或其他地方找到许多其他解决方案: