使用msys2打造優雅的開發環境


windows下常用的類似unix終端軟件有git fow windows(內置簡版msys2)、mingw、msys2、cgwin。

  • git fow windows: 不想折騰的同學,直接使用該軟件就夠用了。缺點是自帶的預編譯的軟件包比較少。
  • mingw: 打包了gcc等編譯器,默認沒有git,自帶的預編譯的軟件包比較少。
  • cygwin: 最全的類Unix環境支持。缺點:比較龐大。
  • msys2:自帶大量預編譯的軟件包,提供pacman便捷安裝git、zsh、gcc等軟件。推薦使用該軟件。

msys2產生的背景:由於 MinGW 萬年不更新,MSYS 更是,Cygwin的許多新功能 MSYS 沒有同步過來,於是 Alex 等人建立了新一代的 MSYS 項目。仍然是 fork 了 Cygwin(較新版),但有個更優秀的包管理器 pacman,有活躍的開發者跟用戶組,有大量預編譯的軟件包(雖然肯定沒有Cygwin多)。

注意:同時安裝git fow windows和msys2,y運行命令可能出現"using incompatible versions of the cygwin DLL"問題。

windows 10新增的wsl2也可以作為開發環境備選。但是由於IO性能差,git操作非常慢,所以用的不多,而 msys2帶有的 Bash 感覺是個不錯的選擇。

本文基於 msys2-bash + zsh + oh-my-zsh 搭建類UNIX開發環境,效果:

下面是詳細內容。

安裝msys2

官網:https://www.msys2.org/

github: https://github.com/msys2/msys2-installer

鏡像地址:https://mirrors.tuna.tsinghua.edu.cn/msys2/distrib/x86_64/

本文安裝的版本是:https://github.com/msys2/msys2-installer/releases/download/2021-07-25/msys2-x86_64-20210725.exe

1、下載下來安裝到C盤,完整路徑:C:\msys64。沒有特殊要求,請不要修改路徑,后續都是參照這個路徑增加功能。

2、配置環境變量。PATH里增加:C:\msys64\usr\bin

配置pacman鏡像

pacman是arclinux中的軟件管理工具,也是widows上msys2默認的軟件管理工具。pacman可以直接從網絡上的軟件倉庫下載安裝及刪除軟件,自動處理依賴關系,類似ubuntu中的apt-get。

鏡像地址:https://mirrors.tuna.tsinghua.edu.cn/help/msys2/

進入C:\msys64\etc\pacman.d目錄,分別進行如下操作:

編輯 /etc/pacman.d/mirrorlist.mingw32 ,在文件開頭添加:

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686

編輯 /etc/pacman.d/mirrorlist.mingw64 ,在文件開頭添加:

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64

編輯 /etc/pacman.d/mirrorlist.ucrt64 ,在文件開頭添加:

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/ucrt64

編輯 /etc/pacman.d/mirrorlist.clang64 ,在文件開頭添加:

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/clang64

編輯 /etc/pacman.d/mirrorlist.msys ,在文件開頭添加:

Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch

點擊安裝路徑的mingw64.exe啟動,然后執行 pacman -Sy 刷新軟件包數據即可。

配置好pacman 鏡像源,就可以安裝常用軟件了。

安裝常用軟件

git

pacman -S git

命令行里輸入git version 可以查看版本:

PS C:\Users\lenovo\Desktop> git version
git version 2.32.0

提示命令找不到可以重啟試一下。

Oh My Zsh

官方網站: http://ohmyz.sh

GitHub: https://github.com/ohmyzsh/ohmyzsh

pacman -S zsh

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# 或者 
# sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

所以這時的zsh 基本已經配置完成,你需要一行命令就可以切換到 zsh 模式,終端下輸入zsh切換,輸入bash切回去。

ohmyzsh插件,路徑:

~/.oh-my-zsh/plugins/
~/.oh-my-zsh/custom/plugins/

新增插件示例:

git clone git://github.com/zsh-users/zsh-syntax-highlighting $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

啟用插件:修改~/.zshrc文件,示例:

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

默認是plugins=(git)

執行下 source ~/.zshrc激活插件。

配置右鍵打開終端

效果:

新建mingw64.reg后綴文件:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\mingw64]
@="MinGW64 Here"
"icon"="C:\\msys64\\mingw64.exe"

[HKEY_CLASSES_ROOT\Directory\Background\shell\mingw64\command]
@="C:\\msys64\\msys2_shell.cmd -mingw64 -here"

雙擊導入即可。

配置 Windows Terminal 使用 msys2 bash

核心參數:

名稱:msys2

命令行:C:\msys64\usr\bin\bash.exe

icon: C:\msys64\msys2.ico

{
    "guid":"{1c4de342-38b7-51cf-b940-2309a097f589}",
    "hidden":false,
    "name":"Bash",
    "commandline":"C:\\msys64\\usr\\bin\\bash.exe",
    "historySize":9001,
    "closeOnExit":true,
    "useAcrylic":true,
    "acrylicOpacity":0.85,
    "icon":"C:\\msys64\\msys2.ico",
    "startingDirectory":null
}

配置 zsh 為 bash 默認終端

編輯 ~/.bashrc,加入下面的幾行。

# Launch Zsh
if [ -t 1 ]; then
exec zsh
fi

配置idea

配置終端使用msys2 bash

點擊 File -> Settings -> Tools -> Terminal ,配置shell path:

C:\msys64\usr\bin\bash.exe

或者

C:\msys64\usr\bin\zsh.exe

這樣就可以執行bash命令了。例如:

$ cd /d/Download/

$ ls | wc -l
81

$ which mvn
/e/opt/apache-maven-3.6.3/bin/mvn

$ cd ~

附錄1: pacman常用命令

pacman命令較多,作為新手,將個人最常用的命令總結如下:

  • pacman -Sy: 從服務器下載新的軟件包數據庫(實際上就是下載遠程倉庫最新軟件列表到本地)。

  • pacman -Syu: 升級系統及所有已經安裝的軟件。

  • pacman -S 軟件名: 安裝軟件。也可以同時安裝多個包,只需以空格分隔包名即可。

  • pacman -Rs 軟件名: 刪除軟件,同時刪除本機上只有該軟件依賴的軟件。

  • pacman -Ru 軟件名: 刪除軟件,同時刪除不再被任何軟件所需要的依賴。

  • pacman -Ssq 關鍵字: 在倉庫中搜索含關鍵字的軟件包,並用簡潔方式顯示。

  • pacman -Qs 關鍵字: 搜索已安裝的軟件包。

  • pacman -Qi 軟件名: 查看某個軟件包信息,顯示軟件簡介,構架,依賴,大小等詳細信息。

  • pacman -Sg: 列出軟件倉庫上所有的軟件包組。

  • pacman -Sg 軟件包組: 查看某軟件包組所包含的所有軟件包。

  • pacman -Sc:清理未安裝的包文件,包文件位於 /var/cache/pacman/pkg/ 目錄。

  • pacman -Scc:清理所有的緩存文件

附錄2:解決vscode不識別git問題

使用msys2環境安裝git,vscode識別不出來git,在源代碼管理菜單中顯示當前打開的文件夾沒有git存儲庫,打開的文件夾實際存在.git文件夾。

解決辦法:

  1. 編寫 git-wrap.bat:

    @echo off
    setlocal
    
    rem If you don't add path for msys2 into %PATH%, enable following line.
    rem set PATH=c:\msys64\usr\bin;%PATH%
    
    if "%1" equ "rev-parse" goto rev_parse
    git %*
    goto :eof
    :rev_parse
    for /f %%1 in ('git %*') do cygpath -w %%1
    

    將 git-wrap.bat放到某個文件夾,例如位於:c:\msys64\git-wrap.bat

  2. 在vscode設置 git.path
    點擊: File -> Preferences -> User Settings, 搜索 git.pathgit-wrap.bat寫到配置文件里:

     "git.path": "C:\\msys64\\git-wrap.bat",
    
  3. 重啟vscode

Have fun!

附錄3:Windows Terminal右鍵

編寫wt.reg:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows Terminal Here"

[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\你的用戶名\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe"

注意替換"你的用戶名"。

參考

1、MSYS2
https://www.msys2.org/

2、Install Terminal + git-bash + zsh + oh-my-zsh on Windows 10 | MiaoTony's小窩
https://miaotony.xyz/2020/12/13/Server_Terminal_gitbash_zsh/

3、msys2軟件包管理工具pacman常用命令_hustlei的專欄

https://blog.csdn.net/hustlei/article/details/86687621

4、玩轉 Ubuntu 20 桌面版 - 飛鴻影 - 博客園
https://www.cnblogs.com/52fhy/p/9571463.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM