在ZSH中显示RVM的Ruby版本
在ZSH中显示RVM的Ruby版本
我刚刚安装了rvm,按照这里的方法升级了ruby。安装后,我的zsh实例始终显示rvm:ruby-2.3.0,如下图所示:
我希望它不要出现,但我找不到设置的地方,有什么想法吗?这真的很烦人。
谢谢!
在ZSH中,RVM会在命令行提示符中显示当前正在使用的Ruby版本。然而,有时候我们可能希望隐藏这个信息。为了实现这个目的,可以通过覆盖ruby_prompt_info()
函数来决定命令行提示符中包含的内容。
要做到这一点,可以编辑~/.zshrc
文件,在$HOME/.rvm/scripts/rvm
被加载后添加以下内容:
# 隐藏命令行提示符中的Ruby版本 function ruby_prompt_info() { echo '' }
以上代码会覆盖默认的ruby_prompt_info()
函数,并将其输出置为空。这样,就能够隐藏命令行提示符中的Ruby版本信息了。
通过这种方式,我们可以在ZSH中使用RVM,同时隐藏Ruby版本信息,使得命令行提示符更加简洁和清晰。
RVM显示Ruby版本在ZSH中的问题是由于使用的ZSH主题文件中包含了显示Ruby版本的代码而引起的。解决方法可以通过更改ZSH主题文件或者更换主题来解决。
首先,如果想要更换主题,可以打开位于家目录下的.zshrc文件,使用文本编辑器打开该文件。在文件中可以找到一行类似于"ZSH_THEME="gallois""的代码,这行代码指定了当前使用的主题为gallois。如果想要更换整个提示符的样式,可以将这行代码修改为"ZSH_THEME="dallas""来使用预设的dallas主题。点击此处可以查看所有默认主题的列表及其样式。这些主题文件位于~/.oh-my-zsh/themes目录中。修改完后,运行". ~/.zshrc"命令重新加载ZSH,即可看到新的提示符样式。
其次,如果想要在gallois主题中移除右侧的提示,可以复制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仓库相关的描述。修改完主题文件后,运行". ~/.zshrc"命令重新加载ZSH,即可看到新的提示符样式。
最后,如果只想要移除gallois主题中的Ruby提示,可以删除以下代码行的一部分:
# 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,即可看到新的提示符样式。
如果像我一样,对主题文件进行了修改但在实际Shell中没有生效,可以检查主题是否是从custom文件夹而不是themes文件夹中加载的。