Zol*_*ing 8 shell zsh hostname zshrc
我在.zshrc中使用以下提示符:
PROMPT="%{$fg[magenta]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%1~ %{$reset_color%}%# "
Run Code Online (Sandbox Code Playgroud)
当我打开终端时,我看到了这个提示:
zoltan@zoltan-Macbook-Pro ~ %
Run Code Online (Sandbox Code Playgroud)
是否可以在主机名中删除文本"zoltan"?我想让它看起来像这样:
zoltan@Macbook-Pro ~ %
Run Code Online (Sandbox Code Playgroud)
任何建议将不胜感激.谢谢!
这有点乱,但你可以假装%m是一个参数并使用参数扩展来剥离zoltan主机名:
PROMPT="...${${(%):-%m}#1} ..."
Run Code Online (Sandbox Code Playgroud)
一点解释.首先,创建一个实际上没有参数名称的"参数"扩展; 它只是使用您提供的文本作为"值":
${:-%m}
Run Code Online (Sandbox Code Playgroud)
接下来,添加%扩展标志,以便处理在值中找到的任何提示转义.
${(%):-%m}
Run Code Online (Sandbox Code Playgroud)
最后,在最后一个扩展中,它使用#运算符从字符串中删除前缀:
${${(%):-%m}#zoltan-}
Run Code Online (Sandbox Code Playgroud)
你可以通过逐个构建来驯服你的提示(并使用zsh's prompt escapes来处理颜色变化,而不是显式嵌入终端控制序列).
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+=" %# "
Run Code Online (Sandbox Code Playgroud)
如果您使用的是OhMyZsh,则如果要在PS1 / PROMPT中使用用户名和主机名,则在.zshrc的底部添加一行。
export PROMPT='%(!.%{%F{yellow}%}.)$USER@%{$fg[white]%}%M ${ret_status} %{$fg[cyan]%}%c%{$reset_color%} $(git_prompt_info)'
Run Code Online (Sandbox Code Playgroud)
请享用 ;)
| 归档时间: |
|
| 查看次数: |
6993 次 |
| 最近记录: |