ZSH Agnoster主题显示机器名称

Dre*_*rew 41 shell ubuntu zsh oh-my-zsh digital-ocean

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

由于某些原因在ubuntu服务器上,这是行不通的.主机名仍然显示,并且不会消失.我在我的Mac OSX上做的完全一样,它运行正常.

以下是一些截图:

在此输入图像描述

在此输入图像描述

有谁知道发生了什么?我甚至试过DEFAULT_USER="$USER@$HOST"没有运气.

如果我回到默认的Robby Russell主题,它的效果很好.

在此输入图像描述

hch*_*baw 78

这是根据这个特点 ; 当我们正在进行时ssh,将显示主机名.

重写功能prompt_contextbuild_promptAgnoster主题将救援.~/.zshrc例如,在下面的片段下面放置一些片段.

# redefine prompt_context for hiding user@hostname
prompt_context () { }
Run Code Online (Sandbox Code Playgroud)


hqt*_*hqt 50

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

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

  2. 第2步.转到文件末尾.

  3. 粘贴此代码:

小心缩进你的代码

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

参考链接:agnoster主题代码

希望这有帮助:)

  • 这应该是经过批准的答案,他不会修改以后可能成为问题的库源代码. (2认同)
  • 同意,这是最有帮助的答案^ _ ^ (2认同)

Riz*_*ufi 21

我也在使用agnoster主题.

编辑agnoster.zsh-theme,查找$user@%m和删除@%m.

图片样本:

在此输入图像描述


Mun*_*shi 10

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

为了获得[user name],输入id -un你的终端,它将输出[user name]值.

  • $DEFAULT_USER 在 cygwin 上是空的,也可能在一些 linux 机器上。添加到 .zshrc 的第一行 ``export DEFAULT_USER=`id -un` `` (2认同)

小智 6

我的配置在 ~/.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]} "
}
Run Code Online (Sandbox Code Playgroud)


IAm*_*ale 5

如果您使用的是macOS,则在文件中添加一行即可~/.zshrc在终端机中隐藏计算机名称:

# Where we specify the theme
ZSH_THEME="agnoster"
# Force yourself as the system's default user
DEFAULT_USER="$(whoami)"
Run Code Online (Sandbox Code Playgroud)

这将取消此处"$user" != "$DEFAULT_USER"检查,从而在仍然为SSH连接显示计算机名称的同时将其隐藏在本地。