如何解决跨所有主题自定义 ZSH 提示
tl;dr:如何修改我的主机(提示中的 %m
),以便无论主题如何都可以修改它?
在我的工作计算机上,我无法更改我的主机名。当我在 %m
上时,我编辑了一个 (oh-my-)zsh 主题以用更短的主题替换主机 (myridiculoushostname.evil.corp
)。我想尝试更多 (oh-my-)zsh 主题(例如,通过将我的主题设置为 random
),但我想以某种方式仅修改所有这些中的提示的主机组件。
解决方法
hacky 答案:在您的根 .zshrc
中执行所有魔术,并在 shell 变量 HOST
上执行此操作。例如,将 HOST="test"
添加到您的 .zshrc
将使 %m
和 %M
都读为 test
。我称之为 hacky 的原因是 HOST
是一个通用的 shell 变量,它可能的其他应用程序和脚本会检查它的值。
'正确' 答案:在您的根 .zshrc
中设置您自己的提示,并以与您现在处理它完全相同的方式处理主机名魔术。这样做的缺点是没有显示每个主题的提示,但 AFAIK 无法直接修改 %m evals 的内容。
答案太吓人了,我差点没写出来:在 zshrc
的末尾,使用 awk 对 PROMPT
变量进行字符串替换。您可以简单地将 %m
映射到您选择的字符串,从而有效地对 zsh 进行提示替换。无论您使用什么主题,这都可以使用,但它看起来很笨拙。
例如:PROMPT=$(echo $PROMPT | sed 's/%m/test123/')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。