背景

在 MacOS 开发环境中 iTerm + Oh-My-Zsh 是一高效生产力工具组合,其终端命令行提示功能及其便携,尤其是 zsh-autosuggestions 命令行自动填充功能等其它插件。

那么在 Windows 系统中是否可以配置 Zsh 终端并安装其插件呢?

当然可以,最终达到效果如下

效果图

在网上搜索一下发现有两种常用方案:

  1. 第一种方案:WSL + zsh;
  2. 第二种方案:Git Bash + zsh;

相比于这两种方案而言:

  • 第一种方案 WSL 直接安装 Linux 子系统,优点是支持 Linux 生态。缺点是开发时一般在主机系统,两者间的文件共享比较麻烦。
  • 第二种方案 Git Bash 优点是不用切入 Linux 子系统可直接使用 Zsh,方便但不是完全支持 Linux 命令。

综上优劣个人选择第二种,原因是个人在 Windows 系统中仅进行一些轻量级开发,需求是命令行可提示历史命令。主要是为了解决命令太多记不住的问题 o(╥﹏╥)o

配置

Git bash

如果想在 Git Bash 中使用 Zsh 那么首先需要安装 Git bash for windows;

下载地址:https://git-scm.com/downloads

选择对应的版本下载安装即可。

Zsh

下一步直接配置 Zsh;和 MacOs 配置不同,Windows 中下载文件直接放在 Git 安装目录下即可;

下载地址:https://git-scm.com/downloads

将下载的文件直接解压到 Git 的安装目录下,与之前的文件进行合并,可以理解为把 Zsh 作为 Git Bash 的一个补充安装包。

合并完的目录结构如下

重启 Git bash 即可看到 zsh 效果!

当然这一步还没达到最终效果!需要安装 Oh-My-Zsh 和插件!

这一步就可以参考另一篇博客:Zsh 安装与个性化配置,不再赘述

主要流程参考:install-zsh-windows-git-bash.md

其它

  • 不显示 agnoster 主题的 主机名和用户名

    ~/.zshrc 配置文件中最后一行加上

    1
    prompt_context() {}
  • 配置 Zsh 为 Git bash 默认终端;

    ~/.bashrc 中添加以下配置

    1
    2
    3
    if [ -t 1 ]; then
    exec zsh
    fi
  • oh-my-zsh 插件列表,按需增加!

    1
    plugins=(git zsh-autosuggestions zsh-syntax-highlighting)

问题

在 Git bash 中配置好之后,在 Git Bash 中使用不存在问题。

在 VSCode 和 IDEA 中配置 Git Bash 为默认终端时,打字时存在乱码和胡乱跳转的问题。

例如 IDEA 中截图如下

目前还没想到怎么解决 o(╥﹏╥)o