ZSH Agnoster Theme 显示机器名称

Posted

技术标签:

【中文标题】ZSH Agnoster Theme 显示机器名称【英文标题】:ZSH Agnoster Theme showing machine name 【发布时间】:2015-04-14 00:20:44 【问题描述】:

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

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

以下是一些截图:

有人知道发生了什么吗?我什至尝试了DEFAULT_USER="$USER@$HOST",但没有成功。

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

【问题讨论】:

【参考方案1】:

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

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

    转到您的 ~/.oh-my-zsh/custom/themes 文件夹 创建一个名为agnoster.zsh-theme的文件 添加您的自定义并保存(例如,在此处重新定义 prompt_context(),使其不执行任何操作):
prompt_context() 
    用您的更改更新您的终端:
source ~/.zshrc

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

我们不需要编辑agnoster.zsh-theme,而是在.zshrc的末尾添加下面的代码:

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

我们可以将export USER='' 更改为export USER='john' 以显示我们想要的内容。

【讨论】:

【参考方案5】:

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

DEFAULT_USER=drewr

我也使用 Agnoster,这就是我用来取消显示用户名的内容。

希望这会有所帮助。

【讨论】:

【参考方案6】:

如果您使用的是 ma​​cOS,则在您的 ~/.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 连接显示它。

【讨论】:

【参考方案7】:

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

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

find ## 主要提示 为 prompt_context 行添加 #。

【讨论】:

【参考方案8】:

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

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

    第 2 步。转到文件末尾。

    粘贴此代码:

再次小心缩进你的代码

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

参考链接:agnoster theme code

希望有帮助:)

【讨论】:

这应该是批准的答案,他不会修改以后可能会出现问题的库源代码。 同意,这是最有帮助的答案^_^【参考方案9】:

我也在使用 agnoster 主题。

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

图片样本:

【讨论】:

【参考方案10】:

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

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

【讨论】:

$DEFAULT_USER 在 cygwin 上为空,也可能在某些 linux 机器上。添加到 .zshrc 的第一行 export DEFAULT_USER=`id -un` 【参考方案11】:

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

Agnoster 主题上覆盖函数 prompt_contextbuild_prompt 将救援。例如,在~/.zshrc 的最后放置 sn-ps。

# redefine prompt_context for hiding user@hostname
prompt_context ()  

【讨论】:

以上是关于ZSH Agnoster Theme 显示机器名称的主要内容,如果未能解决你的问题,请参考以下文章

oh my zsh 配置文件

oh my zsh设置启动随机颜色

oh-my-zsh agnoster主题 特殊字符显示异常

Iterm2

(iTerm2) - 配置主题、插件

ubuntu配置zsh