问题描述
我有一个使用Ubuntu 14.04托管在Digital Ocean上的开发服务器。我将 shell 切换为ZSH,并决定使用Agnoster主题。为了使user@hostname
停止显示,我在.zshrc文件中设置了DEFAULT_USER
。
由于某种原因,在ubuntu服务器上,该服务器无法正常工作。主机名仍然显示,并且不会消失。我在Mac OSX上做的完全相同,而且工作正常。
以下是一些屏幕截图:
有人知道发生了什么吗?我什至没有运气就尝试过DEFAULT_USER="$USER@$HOST"
。
如果我回到默认的Robby Russell主题,则效果很好。
最佳答案
这是根据this的功能;当我们使用ssh
时,将显示主机名。
在Agnoster主题上覆盖功能prompt_context
或build_prompt
将恢复。例如,在~/.zshrc
末尾的摘要下方。
# redefine prompt_context for hiding user@hostname
prompt_context () { }
次佳答案
这是前两个答案的版本。他们解释得很清楚。我将再次合并。
-
步骤1.通过
vim .zshrc
打开您的.zshrc
文件 -
步骤2.转到文件末尾。
-
粘贴以下代码:
再次小心缩进您的代码
prompt_context() {
if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
fi
}
参考链接:agnoster theme code
希望这个帮助:)
第三种答案
我也在使用agnoster主题。
编辑agnoster.zsh-theme
并找到$user@%m
并删除@%m
。
图片样本:
第四种答案
您可以在.zshrc
文件中设置DEFAULT_USER="[user name]"
,它将停止在终端中显示user@hostname
。
为了获取[user name]
,在您的终端中键入id -un
,它将输出[user name]
值。
第五种答案
如果您使用的是macOS,则在~/.zshrc
文件中添加一行即可在终端中隐藏计算机名称:
# Where we specify the theme
ZSH_THEME="agnoster"
# Force yourself as the system's default user
DEFAULT_USER="$(whoami)"
这将使"$user" != "$DEFAULT_USER"
检查here无效,从而在本地显示机器名称的同时仍为SSH连接显示该机器名称。