【问题标题】:zsh prompt and hostnamezsh 提示符和主机名
【发布时间】:2015-07-23 19:27:35
【问题描述】:

我在 .zshrc 中使用如下提示:

PROMPT="%{$fg[magenta]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%1~ %{$reset_color%}%# "

当我打开终端时,我看到这个提示:

zoltan@zoltan-Macbook-Pro ~ %

是否可以在主机名中删除文本“zoltan”?我想让它看起来像这样:

zoltan@Macbook-Pro ~ %

任何建议将不胜感激。谢谢!

【问题讨论】:

  • 也许改变你系统的主机名? %m 是“主机名直到第一个'。'”另一种方法可能是使用您想要的值定义另一个变量,并引用它而不是 %m...

标签: shell zsh hostname zshrc


【解决方案1】:

这有点乱,但你可以假装%m 是一个参数并使用参数扩展从主机名中去除zoltan

PROMPT="...${${(%):-%m}#1} ..."

稍微解释一下。首先,您创建一个实际上没有参数名称的“参数”扩展;它只是使用您提供的文本作为“值”:

${:-%m}

接下来,添加 % 扩展标志,以便处理在值中发现的任何提示转义。

${(%):-%m}

最后,在最后的扩展中使用# 运算符从字符串中删除前缀:

${${(%):-%m}#zoltan-}

您可以通过逐步构建来稍微驯服您的提示(并使用zsh 的提示转义来处理颜色变化,而不是显式嵌入终端控制序列)。

PROMPT="%F{magenta}%n%f"  # Magenta user name
PROMPT+="@"
PROMPT+="%F{blue}${${(%):-%m}#zoltan-}%f" # Blue host name, minus zoltan
PROMPT+=" "
PROMPT+="%F{yellow}%1~ %f" # Yellow working directory
PROMPT+=" %# "

【讨论】:

  • 感谢颜色语法,我完成了一行提示:(no oh-my-zsh):export PROMPT="%F{magenta}%n%f@%F{blue}${${(%):-%m}#zoltan-}%f %F{yellow}%1~ %F{white}"
  • 我接受了你的回答并带着它跑了。 stackoverflow.com/a/66462684/117471 我包含了许多文档链接。谢谢你的灵感! ☮️❤️?
【解决方案2】:

如果您使用 OhMyZsh,如果您希望 PS1/PROMPT 中的用户名和主机名,请在 .zshrc 底部添加一行:

export PROMPT='%(!.%{%F{yellow}%}.)$USER@%{$fg[white]%}%M ${ret_status} %{$fg[cyan]%}%c%{$reset_color%} $(git_prompt_info)'

享受;)

【讨论】:

    【解决方案3】:

    我偶然发现了这个问题,来自@chepner 的wonderfully informative answer 启发我在我自己的通用提示中从%M (fully qualified machine hostname) 中删除了.local

    在他们的情况下,他们做到了:

    ${${(%):-%m}#zoltan-}
    

    就我而言,我做到了:

    ${${(%):-%M}%.local}
    

    注意:

    在外壳substring removal

    • # 表示“从左侧修剪”
    • % 表示“从右侧修剪”

    您可以记住哪个是哪个,因为#% 位于$ 的左侧和右侧,这是您用于${parameter_substitution) 的字符。

    【讨论】:

      【解决方案4】:

      就我而言,我在 .zshrc 中设置了 PS1。查找 '%m' - 这对应于您在提示中看到的主机名。换成你想要的。让我用 CUSTOM 替换 '%m'。


      autoload -U colors && colors
      PS1="%{$fg[green]%}%n%{$reset_color%}@%{$fg[cyan]%}%m %{$fg[yellow]%}%~ %{$reset_color%}%% "
      

      autoload -U colors && colors
      PS1="%{$fg[green]%}%n%{$reset_color%}@%{$fg[cyan]%}CUSTOM %{$fg[yellow]%}%~ %{$reset_color%}%% "
      

      【讨论】:

        猜你喜欢
        • 2017-06-24
        • 2016-12-20
        • 2022-01-12
        • 1970-01-01
        • 2015-04-14
        • 2012-10-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多