如何让ZSH显示终端框架中的当前目录?

时间:2012-06-13 23:59:55

标签: macos terminal zsh

我正逐渐从Bash切换到ZSH,并尝试通过复制功能来学习。似乎无法找到这一个。

Bash does this by default I think

我应该放什么,我应该把它放在哪里?这甚至可能吗?感谢。

2 个答案:

答案 0 :(得分:10)

试试这个:

settitle() { printf "\e]0;$@\a" }
dir_in_title() { settitle $PWD }
chpwd_functions=(dir_in_title)

现在,您的cd命令将运行dir_in_title函数,该函数将打印一个转义序列,要求Terminal.app更新标题。 (奇怪的是,使用至少在urxvt中起作用的转义序列。这些必须比我预期的更标准化。)

如果您喜欢这种效果,则需要将这些行添加到~/.zshrc,以便在未来的终端上使用。

我抓住了正确的转义序列from Chris Page on superuser和函数样式from my answer to similar but different questionChris Page gave his own answer on that question with details on OS X 10.7 that are drastically different。当你升级时,你可能会想要使用他的机制。

答案 1 :(得分:0)

我定义了这个函数。需要一些 Python 知识并且有点冗长,但我知道那里发生了什么。

没有谷歌搜索我不知道为什么 sarnold 的 printf "\e]0;$@\a" 会做它应该做的事情。

function current_directory()
{
    echo $(python3 -c "from pathlib import Path; print(Path('.').absolute().name)")
}