ZSH Agnoster 主题显示机器名称

ZSH Agnoster Theme showing machine name

我有一个开发服务器托管在 Digital Ocean 上,使用 Ubuntu 14.04。我将 shell 切换到 ZSH,并决定使用 Agnoster 主题。为了让 user@hostname 停止显示,我在 .zshrc 文件中设置了 DEFAULT_USER

出于某种原因,在 ubuntu 服务器上,这不起作用。主机名仍然显示,并且不会消失。我在我的 Mac OSX 上做同样的事情,它工作正常。

以下是部分截图:

有人知道这是怎么回事吗?我什至试过 DEFAULT_USER="$USER@$HOST" 但没有成功。

如果我回到默认 Robby Russell 主题,它工作得很好。

是根据this的特征;当我们 sshing 时,将显示主机名。

Agnoster 主题上重写 prompt_contextbuild_prompt 函数将会拯救。例如,将下面的代码片段放在 ~/.zshrc 的最后。

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

您可以在 .zshrc 文件中设置 DEFAULT_USER="[user name]",它将停止在您的终端中显示 user@hostname

为了获得 [user name],在您的终端中输入 id -un,它将输出 [user name] 值。

我也在用 agnoster 主题。

编辑 agnoster.zsh-theme 并找到 $user@%m 并删除 @%m

图片样本:

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

  1. 步骤 1. 通过 vim .zshrc

  2. 打开您的 .zshrc 文件
  3. 第 2 步。转到文件末尾。

  4. 粘贴此代码:

再次小心缩进您的代码

prompt_context() {
  if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
    prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
  fi
}

参考link:agnoster theme code

希望对您有所帮助:)

1。 打开 ~/.zshrc 添加行: DEFAULT_USER=whoami 或 export DEFAULT_USER= myusername (mac os x)

2。 打开 ~/.oh-my-zsh/themes/agnoster.zsh-theme 文件。

找到##主提示符 为 prompt_context 行添加 #。

如果您使用的是 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 连接显示它。

将此放在 'source $ZSH/oh-my-zsh.sh'

之前的 .zshrc 文件中
DEFAULT_USER=drewr

我也使用 Agnoster,这就是我为了不显示用户名而设置的。

希望对您有所帮助。

我们不需要编辑 agnoster.zsh-theme 但在 .zshrc 末尾附加以下代码:

export USER=''
prompt_context() {
  if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
    prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
  fi
}

我们可以像 export USER='john' 一样更改 export USER='' 以显示我们想要的内容。

与上下文相关: 有时通过 "source ~/.zshrc" 获取 zshrc 可能不起作用。启动一个新终端以查看更新的更改。

我的配置在 ~/.oh-my-zsh/themes/agnoster.zsh-theme

prompt_context() {
  # Custom (Random emoji)
  emojis=("⚡️" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "")
  RAND_EMOJI_N=$(( $RANDOM % ${#emojis[@]} + 1))
  prompt_segment black default "${emojis[$RAND_EMOJI_N]} "
}

虽然接受的答案非常好,但我更愿意尽可能少地修改我的 .zshrc 文件以保持内容干净。

因此,一种略有不同的方法是覆盖主题(根据 https://github.com/robbyrussell/oh-my-zsh/wiki/Customization#overriding-and-adding-themes 上的建议)。

  1. 转到您的 ~/.oh-my-zsh/custom/themes 文件夹
  2. 创建一个名为 agnoster.zsh-theme
  3. 的文件
  4. 添加您的自定义并保存(例如,在这里,重新定义 prompt_context() 所以它什么都不做):
prompt_context() {}
  1. 用您的更改更新您的终端:
source ~/.zshrc