我刚刚使用此处概述的方法安装了rvm来升级ruby。安装后,我的 zsh 实例现在始终显示 rvm:ruby-2.3.0,如下图所示:
我宁愿它不出现,但我找不到它的设置位置,有什么想法吗?真烦人。
谢谢!
如果您像我一样因为
powerlevel10k
主题的问题而来到这里,请执行以下操作来禁用 rvm
segment:
打开
~/.p10k.zsh
找到行:
rvm # ruby version from rvm (https://rvm.io)
评论出来:
# rvm # ruby version from rvm (https://rvm.io)
打开新终端
隐藏 ruby 版本信息的另一种方法是重写用于确定提示中包含哪些内容的
ruby_prompt_info()
函数。
为此,请编辑您的
~/.zshrc
并添加以下内容 after $HOME/.rvm/scripts/rvm
已获取:
# hide ruby version from ps1
function ruby_prompt_info() { echo '' }
您的提示设置在您指定的
文件中.zsh-theme
文件位于您的主目录中。.zshrc
更改为另一个主题:
如果您想将提示更改为预先存在的提示,请使用您最喜欢的文本编辑器打开您的
.zshrc
文件。您可以在 .zshrc
中找到您的 ~/.zshrc
。当您打开该文件时,您将看到一行如下所示的内容:ZSH_THEME="gallois"
。 (看起来你正在使用gallois)
如果您想更改整个提示,则应该更改此行。例如,将其从
ZSH_THEME="gallois"
更改为 ZSH_THEME="dallas"
以更改为预先存在的达拉斯主题。单击此处查看所有默认主题及其外观的列表。这些主题位于 ~/.oh-my-zsh/themes
。
然后您应该运行
. ~/.zshrc
来获取 zsh,您将看到新的提示。
编辑gallois主题以删除右侧提示
这些主题位于
~/.oh-my-zsh/themes
。我建议复制 gallois.zsh-theme
文件并制作其他一些文件,例如 yourname.zsh-theme
。在主题文件中,您可以通过删除此注释下面的行来完全删除正确的提示:
# Combine it all into a final right-side prompt
RPS1='$(git_custom_status)$(ruby_prompt_info) $EPS1'
为了更好的措施,您也应该从主题文件中删除它:
# RVM component of prompt
ZSH_THEME_RVM_PROMPT_PREFIX="%{$fg[red]%}["
ZSH_THEME_RVM_PROMPT_SUFFIX="]%{$reset_color%}"
#Customized git status, oh-my-zsh currently does not allow render dirty status before branch
git_custom_status() {
local cb=$(git_current_branch)
if [ -n "$cb" ]; then
echo "$(parse_git_dirty)%{$fg_bold[yellow]%}$(work_in_progress)%{$reset_color%}$ZSH_THEME_GIT_PROMPT_PREFIX$(git_current_branch)$ZSH_THEME_GIT_PROMPT_SUFFIX"
fi
}
请记住,这也会从提示中删除有关 git repos 的任何描述。然后您应该运行
. ~/.zshrc
来获取 zsh,您将看到新的提示。
编辑 gallois 主题以仅删除 ruby 提示
这些主题位于
~/.oh-my-zsh/themes
。我建议复制 gallois.zsh-theme
文件并制作其他一些文件,例如 yourname.zsh-theme
。在主题文件中,您可以通过删除此行的一部分来仅删除 rvm 提示符:
# Combine it all into a final right-side prompt
RPS1='$(git_custom_status)$(ruby_prompt_info) $EPS1'
如果您只是删除
$(ruby_prompt_info)
部分,使其看起来像这样:
# Combine it all into a final right-side prompt
RPS1='$(git_custom_status) $EPS1'
然后你可以跳到最后,只删除提示符的rvm部分。我还建议删除这些行以避免混乱主题文件:
# RVM component of prompt
ZSH_THEME_RVM_PROMPT_PREFIX="%{$fg[red]%}["
ZSH_THEME_RVM_PROMPT_SUFFIX="]%{$reset_color%}"
然后您应该运行
. ~/.zshrc
来获取 zsh,您将看到新的提示。
以@Keith Hughitt 的答案为基础:
如果您愿意,您可以将 ruby 版本设置为以 .rvnrc 文件存在为条件。这就是我所做的:
# I want to modify ruby_prompt_info function to only show the ruby version when inside a
# dir with a .rvmrc file
# First I need to save the original function, this requires eval to get the
# function declaration before I override it, otherwise it becomes cyclic
eval "__ruby_prompt_info() { $(declare -f ruby_prompt_info | sed '1d;$d') }"
# Now I can override to wrap the original function in a check for .rvmrc
function ruby_prompt_info() {
if [[ -f .rvmrc ]]; then
__ruby_prompt_info
fi
}