我逐渐从 Bash 切换到 ZSH,并尝试通过复制功能来学习。不过好像找不到这个。
我应该放什么,我应该放哪里?这甚至可能吗?谢谢。
尝试这个:
settitle() { printf "\e]0;$@\a" }
dir_in_title() { settitle $PWD }
chpwd_functions=(dir_in_title)
现在,您的cd
命令将运行该dir_in_title
函数,该函数将打印一个要求Terminal.app
更新标题的转义序列。(奇怪的是,urxvt
至少使用了也适用于 的转义序列。这些必须比我预期的更标准化。)
如果您喜欢这种效果,则需要将这些行添加到您的行中,~/.zshrc
以便它在未来的终端上工作。
我从超级用户的 Chris Page 那里获取了正确的转义序列,并从我对类似但不同的问题的回答中获取了函数样式。Chris Page 对这个问题给出了他自己的答案,在 OS X 10.7 上的细节完全不同。当您升级时,您可能希望使用他的机制。
我已经定义了这个函数。需要一些 Python 知识并且有点冗长,但我知道那里发生了什么。
在没有谷歌搜索的情况下,我不知道为什么 sarnoldprintf "\e]0;$@\a"
会做它应该做的事情。
function current_directory()
{
echo $(python3 -c "from pathlib import Path; print(Path('.').absolute().name)")
}