当前位置: 首页>>技术教程>>正文


shell – ZSH Agnoster主题显示机器名称

, , , ,

问题描述

我有一个使用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_contextbuild_prompt将恢复。例如,在~/.zshrc末尾的摘要下方。

# redefine prompt_context for hiding user@hostname
prompt_context () { }

次佳答案

这是前两个答案的版本。他们解释得很清楚。我将再次合并。

  1. 步骤1.通过vim .zshrc打开您的.zshrc文件

  2. 步骤2.转到文件末尾。

  3. 粘贴以下代码:

再次小心缩进您的代码

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连接显示该机器名称。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8171.html,未经允许,请勿转载。