ZSH Agnoster主题显示机器名称

时间:2015-02-13 02:15:15

标签: shell ubuntu zsh digital-ocean oh-my-zsh

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

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

以下是一些截图:

enter image description here

enter image description here

任何人都知道发生了什么?我甚至试过DEFAULT_USER="$USER@$HOST"没有运气。

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

enter image description here

11 个答案:

答案 0 :(得分:62)

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

覆盖 Agnoster 主题上的功能prompt_contextbuild_prompt将会解救。例如,在~/.zshrc的最后放置下面的代码段。

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

答案 1 :(得分:39)

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

  1. 步骤1.按.zshrc

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

  4. 粘贴此代码:

  5. 再次仔细缩进代码

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

    参考链接:agnoster theme code

    希望这有帮助:)

答案 2 :(得分:20)

我也使用agnoster主题。

修改agnoster.zsh-theme并找到$user@%m并删除@%m

图片示例:

enter image description here

答案 3 :(得分:10)

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

要获取[user name],请在终端中输入id -un,然后输出[user name]值。

答案 4 :(得分:2)

如果您使用 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连接。

答案 5 :(得分:1)

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

2。 打开〜/ .oh-my-zsh / themes / agnoster.zsh-theme files。

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

答案 6 :(得分:1)

与上下文有关: 有时通过“ source〜/ .zshrc”来采购zshrc可能无法正常工作。启动一个新的终端以查看更新的更改。

答案 7 :(得分:1)

我在~/.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]} "
}

答案 8 :(得分:0)

将此文件放在.zshrc文件的“源$ ZSH / oh-my-zsh.sh”之前

DEFAULT_USER=drewr

我也使用Agnoster,这就是我删除显示用户名的原因。

希望这会有所帮助。

答案 9 :(得分:0)

我们无需编辑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=''一样更改export USER='john'来显示我们想要的东西。

答案 10 :(得分:0)

尽管接受的答案是完全可以的,但我还是希望尽可能少地修改.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. 添加您的自定义内容并保存(例如,在此处重新定义prompt_context(),使其无任何作用):
prompt_context() {}
  1. 使用您的更改更新您的终端:
source ~/.zshrc