RVM 在 ZSH 中显示 Ruby 版本

问题描述 投票:0回答:4

我刚刚使用此处概述的方法安装了rvm来升级ruby。安装后,我的 zsh 实例现在始终显示 rvm:ruby-2.3.0,如下图所示:

enter image description here

我宁愿它不出现,但我找不到它的设置位置,有什么想法吗?真烦人。

谢谢!

zsh oh-my-zsh zshrc
4个回答
15
投票

如果您像我一样因为

powerlevel10k
主题的问题而来到这里,请执行以下操作来禁用
rvm
segment:

  1. 打开

    ~/.p10k.zsh

  2. 找到行:

    rvm                     # ruby version from rvm (https://rvm.io)
    
  3. 评论出来:

    # rvm                     # ruby version from rvm (https://rvm.io)
    
  4. 打开新终端


9
投票

隐藏 ruby 版本信息的另一种方法是重写用于确定提示中包含哪些内容的

ruby_prompt_info()
函数。

为此,请编辑您的

~/.zshrc
并添加以下内容 after
$HOME/.rvm/scripts/rvm
已获取:

# hide ruby version from ps1
function ruby_prompt_info() { echo '' }

6
投票

您的提示设置在您指定的

.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,您将看到新的提示。


0
投票

以@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
}
© www.soinside.com 2019 - 2024. All rights reserved.