解决oh-my-zsh中git分支显示乱码问题

oh-my-zsh显示github分支时,如果当前文件夹不是git仓库,它就会显示乱码。倒腾了好几个小时终于弄清楚是oh-my-zsh中函数”git_prompt_info“的锅,然后又花了半个多小时调代码,现在总算像个人了!!

先看效果:

实现步骤:

  1. 进入 ~/.oh-my-zsh/lib 文件夹
  2. 编辑 git.zsh,找到git_prompt_info函数:

    function git_prompt_info() {
      local ref
      if [[ "$(command git config --get oh-my-zsh.hide-status 2>/dev/null)" != "1" ]]; then
        ref=$(command git symbolic-ref HEAD 2> /dev/null) ||     if [[ -n $ref ]]; then
          ref=$(command git rev-parse --short HEAD 2> /dev/null) || return 0
        fi
        if [[ -n ${ref#refs/heads/} ]]; then
          echo " ${ref#refs/heads/}"
        fi
      fi
    }

    这里修改显示逻辑,如果当前文件夹属于git仓库,就显示分支,否则什么也不显示。

  3. 进入 ~/.oh-my-zsh/thems 文件夹,编辑robbyrussell.zsh-theme

    local ret_status="%(?:%{$fg_bold[green]%}?:%{$fg_bold[red]%}?)"
    PROMPT=‘${ret_status} %{$fg[cyan]%}%c%{$fg_bold[blue]%}$(git_prompt_info) %{$reset_color%}$ ‘
    ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}"
    ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
    ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}?"
    ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})"
    

    这里是修改prompt格式,直接拷贝进去就好,不要漏空格,否则会很丑。

大功告成~!

原文地址:https://www.cnblogs.com/Rhythm-/p/11337006.html

时间: 2024-10-08 05:24:19

解决oh-my-zsh中git分支显示乱码问题的相关文章

linux中的sqlplus显示乱码和方向键解决办法

linux中的sqlplus显示乱码解决办法 1.临时解决: export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" 2.永久生效 echo 'export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"'>>/etc/profile linux中的sqlplus退格和方向键的显示问题解决办法 stty erase ^H echo 'stty erase ^H'&g

MySQL如何永久解决由dos编码格式导致MySQ的显示乱码

MySQL如何永久解决由dos编码格式导致MySQ的显示乱码 Ⅰ.新建文件 changeCode.txt Ⅱ.粘贴下面代码(作用:将默认的GBK(936)修改为UTF-8(65001)) 1 Windows Registry Editor Version 5.00 2 3 4 5 [HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe] 6 7 "CodePage"=dword:0000fde9 8 9 "FontFa

如何解决英文系统下安装中文软件显示乱码问题?

如何解决英文系统下安装中文软件显示乱码问题? ?Lander Zhang 专注外企按需IT运维服务,IT Helpdesk 实战培训践行者博客:https://blog.51cto.com/landerIT Helpdesk 工程师实战培训课程:https://edu.51cto.com/lecturer/733218.html轻松进外企:IT Helpdesk工程师实战自学之路:https://blog.51cto.com/lander/2413018更新时间:2019/10/28 故障描述

jmeter察看结果树—响应数据中的中文显示乱码的问题

jmeter察看结果树-响应数据中的中文显示乱码的问题: 打开文件:jmeter\bin\jmeter.properties 原始内容: 默认编码为:ISO-8859-1 # The encoding to be used if none is provided (default ISO-8859-1) #sampleresult.default.encoding=ISO-8859-1 修改为: sampleresult.default.encoding=utf-8 修改配置后,要重启jmete

idea中git分支、合并与使用

1.分支的新建与合并使用场景介绍 让我们来看一个简单的分支新建与分支合并的例子,实际工作中你可能会用到类似的工作流. 你将经历如下步骤: 开发某个网站. 为实现某个新的需求.问题(#53问题),创建一个分支(名为:iss53). 在这个分支上开展工作. 正在此时,你突然接到一个电话说有个很严重的问题需要紧急修补. 你将按照如下方式来处理: 切换到你的线上分支(production branch). 为这个紧急任务新建一个分支(名为:hotfix),并在其中修复它. 在测试通过之后,切换回线上分支

Android Studio 导入 Eclipse 的代码后,代码中的注释显示乱码问题

看到乱码后,意识到可能是编码方式错了.在 Android Studio 的设置菜单中找到修改编码的地方.如下: File > Settings > Editor > File Encodings 里 Project Encoding 改为 GBK,为了统一规范,我也将其它 Encoding 项也设置为 GBK了. ----------------------------------------------------------------------------------------

Servlet内容中的中文显示乱码问题

一.常识了解 1.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立; 2.java.nio.charset.Charset.defaultCharset() 获得平台默认字符编码: 3.getBytes() 是通过平台默认字符集进行编码: 二.中文乱码出现 在学习任何一门技术时,经常会有初学者遇到中文乱码问题,比如MySQL,是因为在安装时没有设置:而在Servlet中,也会遇到中文乱码问题: 比如: OutputStream out = response.

ORACLE 11G中PLSQL中文显示乱码、Linux下sqlplus查询中文乱码

问题描述: 本地是win7操作系统,cmd里面sqlplus进去连接oracle数据库,中文可以正常显示,但是plsql连接oracle数据库,中文显示乱码,还有xshell远程连接oracle服务器登录进去使用sqlplus登录也显示中文乱码. 1.检查windows7下面cmd里面sqlplus中oracle server端的字符集. 打开cmd,用sqlplus登录,输入下面SQL查询服务端的字符集. SQL> select userenv('language') fromdual; US

IDEA中Git分支未push的变更集如何合并到另一个分支

使用rebase命令 刚开始,A分支和B分支的代码是一样的,把A分支checkout 为当前分支,并且修改了代码,进行[commit]和[push],commit成功了,但是push没有权限. 这个时候在checkout 到B分支,之前的修改已经没有了,它被提交到了A分支上去了,该怎么办? 这时应该在上面的那个情况时(即当前先[Checkout]到A分支),然后选择B分支的[Checkout with Rebase]. 待成功后,就会把A分支已经提交(commit)过的变更集,在B分支上也提交(