我在 .zshrc 中使用以下提示:
PROMPT="%{$fg[magenta]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%1~ %{$reset_color%}%# "
当我打开终端时,我看到这个提示:
zoltan@zoltan-Macbook-Pro ~ %
是否可以在主机名中删除文本“zoltan”?我想让它看起来像这样:
zoltan@Macbook-Pro ~ %
任何建议将不胜感激。谢谢!
最佳答案
有点乱,但你可以假装%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+=" %# "
关于shell - zsh 提示和主机名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30199068/