在MSYS2的ZSH中显示当前编译平台

MSYS2有三套体系:MINGW x64MINGW x64MSYS,其中前两个是用于交叉编译,编译出来的程序独立运行不依赖MSYS 2,实际上就是一套比较好用的windows版gcc,最后一个则相当于一套好用点的cygwin.

装好MSYS2之后很快就感觉到命令行不够爽了,于是依次装了gitzsh,oh-my-zsh并且切换到了我最喜欢的agnoster主题,但这时出来了一个问题:原本一直显示的一个命令提示,标着目前环境是MINGW x64MINGW x64还是MSYS的那一串字符,没了。有时候会造成误解,比较麻烦。

搜了一下,发现:

MINGW x64MINGW x64还是MSYS的信息,可以通过读MSYSTEM变量获取。

zsh的命令提示符,由一个prompt_context()的bash函数控制,可以通过在.zshrc里面放置这个函数来覆盖。

如果需要一直显示,可以如下编辑.zshrc文件:

prompt_context() {
  #if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
  #  prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
  #fi
  prompt_segment black default "%(!.%{%F{yellow}%}.)$MSYSTEM"
}

注释掉的部分不是原装的,而是用来仅对非默认用户显示提示符的,可以自行hack.

  • 最后更改: 2022/01/23 04:57