我在.zshrc中使用以下提示符:
PROMPT="%{$fg[magenta]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%1~ %{$reset_color%}%# "
当我打开终端时,我看到了这个提示:
zoltan@zoltan-Macbook-Pro ~ %
是否可以删除文本" zoltan"在主机名?我想让它看起来像这样:
zoltan@Macbook-Pro ~ %
任何建议都将不胜感激。谢谢!
答案 0 :(得分:6)
这有点乱,但您可以假装%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+=" %# "
答案 1 :(得分:3)
如果您正在使用OhMyZsh,如果您想在PS1 / PROMPT中使用用户名和主机名,则可以在.zshrc底部添加一行:
export PROMPT='%(!.%{%F{yellow}%}.)$USER@%{$fg[white]%}%M ${ret_status} %{$fg[cyan]%}%c%{$reset_color%} $(git_prompt_info)'
享受;)
答案 2 :(得分:0)
我偶然发现了这个问题,@chepner 的 wonderfully informative answer 启发我从我自己的通用提示中的 .local
(fully qualified machine hostname) 中删除 %M
。>
就他们而言,他们做到了:
${${(%):-%m}#zoltan-}
就我而言,我做到了:
${${(%):-%M}%.local}
#
表示“从左侧修剪”%
表示“从右侧修剪”您可以记住哪个是哪个,因为 #
和 %
位于 $
的左侧和右侧,{{1}} 是您用于 ${parameter_substitution)
的字符。
答案 3 :(得分:0)
就我而言,我在 .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%}%% "