53

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

出于某种原因,在 ubuntu 服务器上,这是行不通的。主机名仍然显示,并且不会消失。我在我的 Mac OSX 上做同样的事情,而且效果很好。

以下是一些截图:

在此处输入图像描述

在此处输入图像描述

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

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

在此处输入图像描述

4

11 回答 11

95

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

覆盖该功能prompt_contextbuild_promptAgnoster主题将拯救。将下面的片段放在示例的最后。~/.zshrc

# redefine prompt_context for hiding user@hostname
prompt_context () { }
于 2015-02-13T04:13:05.950 回答
69

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

  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
}

参考链接:agnoster 主题代码

希望这有帮助:)

于 2016-07-10T19:54:20.193 回答
31

我也在使用 agnoster 主题。

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

图片样本:

在此处输入图像描述

于 2015-05-04T14:26:04.253 回答
13

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

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

于 2015-02-28T14:19:37.800 回答
8

如果您在macOS上,在文件中添加一行~/.zshrc就足以在终端中隐藏机器名称:

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

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

于 2018-05-24T19:23:43.720 回答
8

我的配置在~/.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]} "
}
于 2019-03-07T16:56:41.457 回答
2

我们不需要编辑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'展示我们想要的东西。

于 2018-08-06T12:27:08.250 回答
1

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

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

find ## Main prompt add # for prompt_context 行。

于 2017-09-06T13:48:55.290 回答
1

把它放在你的 .zshrc 文件中,放在'source $ZSH/oh-my-zsh.sh'之前

DEFAULT_USER=drewr

我也使用 Agnoster,这就是我用来从显示中删除用户名的内容。

希望这可以帮助。

于 2018-07-03T14:10:54.517 回答
1

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

于 2018-10-19T15:47:58.167 回答
1

尽管接受的答案非常好,但我更喜欢.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
于 2019-09-27T10:42:41.867 回答