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】:如果您使用的是 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 连接显示它。
【讨论】:
【参考方案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的特征;当我们ssh
ing 时,会显示主机名。
在 Agnoster 主题上覆盖函数 prompt_context
或 build_prompt
将救援。例如,在~/.zshrc
的最后放置 sn-ps。
# redefine prompt_context for hiding user@hostname
prompt_context ()
【讨论】:
以上是关于ZSH Agnoster Theme 显示机器名称的主要内容,如果未能解决你的问题,请参考以下文章