win10 下 git 的美化

最初是忍受不了 win10 下 cmd 和 powershell 的丑和难用,想找一个 win10 下像 linux 那样的终端,百度,google 的半天之后,最终锁定了 Windows Terminal(终端) + Git Bash(Shell)的方案。

设置快捷键

为了能够快速打开 Git Bash,我建议下给它设置一个全局快捷键。(其实也是 linux 的终端全局快捷键)

  • 按 Win 键,然后搜索 Git Bash,点击「打开文件所在位置」
    git hash
  • 右键快捷方式,点击「属性」,然后在这里设置一个快捷键。我是按照 linux 的喜欢设置 ctrl+Alt+T 的。(不过这台电脑好像快捷键被占了,不得以加了个 shift)
    git hash
  • 再点击「高级」,把「以管理员身份运行」勾上,后面会在终端上改文件,勾选它可以避免很多麻烦。
    git hash

git 美化

#首先在用户根目录下新建一个名为 .minttyrc 的文件,这个是 git 的样式文件(?)

  • cd ~
  • touch .minttyrc
  • code .minttyrc

这里我使用的是 vscode,没有的老哥可以自己下一个,或者使用 vi。

# 美化代码
# 美化代码
FontHeight=10
Font=Source Code Pro
Transparency=low
FontSmoothing=full
Locale=zh_CN
Charset=UTF-8
Columns=88
Rows=26
OpaqueWhenFocused=no
Scrollbar=none
Language=zh_CN

ForegroundColour=131,148,150
BackgroundColour=0,43,54
CursorColour=220,130,71

BoldBlack=128,128,128
Red=255,64,40
BoldRed=255,128,64
Green=64,200,64
BoldGreen=64,255,64
Yellow=190,190,0
BoldYellow=255,255,64
Blue=0,128,255
BoldBlue=128,160,255
Magenta=211,54,130
BoldMagenta=255,128,255
Cyan=64,190,190
BoldCyan=128,255,255
White=200,200,200
BoldWhite=255,255,255

Term=xterm-256color
BellType=0

CtrlShiftShortcuts=yes
ConfirmExit=no
AllowBlinking=yes
BoldAsFont=no
ThemeFile=dracula

完成之后保存,再重启 git bash,就能看到美化后的样子了。
同时会开启复制粘贴快捷键:Ctrl + Shift + C/V,需要 Git Bash 版本大于 2.20.0 才可以使用。

#仅仅是换了一个主题还不够,还需要更改终端提示符,更改 git 安装目录下 etc 目录里面的一个文件即可,这个文件也可以通过绝对路径访问到

  • code /etc/profile.d/git-prompt.sh
if test -f /etc/profile.d/git-sdk.sh
then
 TITLEPREFIX=SDK-${MSYSTEM#MINGW}
else
 TITLEPREFIX=$MSYSTEM
fi

if test -f ~/.config/git/git-prompt.sh
then
 . ~/.config/git/git-prompt.sh
else
 PS1='\[\033]0;Bash In $PWD\007\]' # 窗口标题
 PS1="$PS1"'\n'                                # 换行
 PS1="$PS1"'\[\033[32m\]'               # 绿色
 PS1="$PS1"'\u '                             # 用户名
 PS1="$PS1"'\[\033[0m\]'                # 灰色
 PS1="$PS1"'at '          # 自定义内容
 PS1="$PS1"'\[\033[35m\]'             # 粉红色
 PS1="$PS1"'\t '          # 时间
 PS1="$PS1"'\[\033[33m\]'             # 黄色
 PS1="$PS1"'\W '                            # 当前目录
 if test -z "$WINELOADERNOEXEC"
 then
  GIT_EXEC_PATH="$(git --exec-path 2>/dev/null)"
  COMPLETION_PATH="${GIT_EXEC_PATH%/libexec/git-core}"
  COMPLETION_PATH="${COMPLETION_PATH%/lib/git-core}"
  COMPLETION_PATH="$COMPLETION_PATH/share/git/completion"
  if test -f "$COMPLETION_PATH/git-prompt.sh"
  then
   . "$COMPLETION_PATH/git-completion.bash"
   . "$COMPLETION_PATH/git-prompt.sh"
   PS1="$PS1"'\[\033[36m\]'  # change color to cyan
   PS1="$PS1"'`__git_ps1`'   # bash function
  fi
 fi
 PS1="$PS1"'\[\033[0m\]'        # 灰色
 PS1="$PS1"'$ '                       # 命令提示符
fi

MSYS2_PS1="$PS1"               # for detection by MSYS2 SDK's bash.basrc

# Evaluate all user-specific Bash completion scripts (if any)
if test -z "$WINELOADERNOEXEC"
then
  for c in "$HOME"/bash_completion.d/*.bash
  do
    # Handle absence of any scripts (or the folder) gracefully
    test ! -f "$c" ||
    . "$c"
  done
fi

上面的这些内容有中文注释的部分是我改过的,这个依据自己的喜好来改,如果看不懂上面的那些符号都是代表的什么意思,可以搜索下 Linux 下如何修改终端提示符 就会有很多参考资料。

在 VSCode 中配置 Git Bash

在 VSCode 中使用 Git Bash 只需要在 Settings.json 中添加如下两行即可,第一行中 bash.exe 的文件路径需要改成自己的,第二行是非必须配置,不配置无法使用 alias。

{
"terminal.integrated.shell.windows": "C:\Program Files\Git\bin\bash.exe",
"terminal.integrated.shellArgs.windows": ["--login", "-i"]
}

解决快捷键延迟问题

为 Git Bash 设置了全局快捷键后,可能出现按下快捷键后延迟两秒左右终端才打开的现象,只需要在服务中禁用掉 superFetch 即可,此服务在比较新的 win10 上改名为了 sysMain,禁用服务后重启操作系统生效

参考文章

Q.E.D.


梦醒花犹存,铁甲依然在