【问题标题】:Customize ZSH prompt across all themes跨所有主题自定义 ZSH 提示
【发布时间】:2021-03-03 15:19:48
【问题描述】:

tl;dr:我如何修改我的主机(提示中的%m),以便无论主题如何都可以修改它?

在我的工作计算机上,我无法更改我的主机名。当我在 myridiculoushostname.evil.corp 上时,我编辑了一个 (oh-my-)zsh 主题来替换主机 (%m) 用更短的东西。我想尝试更多 (oh-my-)zsh 主题(例如,通过将我的主题设置为 random),但我想以某种方式仅修改所有提示的主机组件。

【问题讨论】:

    标签: zsh zshrc


    【解决方案1】:

    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/')

    【讨论】:

    • 我实际上认为我最喜欢最后一个,因为我担心其他工作工具可能期望 $HOST 具有当前值。我想看看不同主题中关于提示外观的不同建议
    • @Michael 是的,我认为这是完全获得您描述的行为的唯一方法,但请记住同时映射 %m%M。我觉得我对我的“哦,太可怕了”有点苛刻
    猜你喜欢
    • 2017-10-11
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    • 2015-09-18
    相关资源
    最近更新 更多