先裝 MSYS2 的好處是之后可以將 $HOME 設為 /home/name/,再裝其他 *nix 系工具時配置文件都會放在 MSYS2 的 /home/name 下,方便管理。
1. 到 http://sourceforge.net/projects/msys2/ 下載安裝。
安裝位置設為 D:/develop/msys64
添加環境變量 HOME 為 D:\develop\msys64\home\name,這個變量非常有用,后面配置要多次用到。
2. 運行 msys2_shell.bat
pacman -Sy
更新本地包數據
3. 升級核心包
pacman -S --needed filesystem msys2-runtime bash libreadline libiconv libarchive libgpgme libcurl pacman ncurses libintl
之后需要關閉所有 MSYS2 shell,然后運行 autorebase.bat
4. 升級其他包
pacman -Su
運行環境說明:
可以看到 MSYS2 有三個執行腳本,分別是 msys2_shell.bat、mingw32_shell.bat 和 mingw64_shell.bat,查看內容可以看到其中只有一行區別,即是設定 MSYSTEM 變量。這個變量在 /etc/profile 中會用到:
if [ -n "$MSYSTEM" ] then case "$MSYSTEM" in MINGW32) PATH="/mingw32/bin:${MSYS2_PATH}:${PATH}" PKG_CONFIG_PATH="/mingw32/lib/pkgconfig" MANPATH="/mingw32/share/man:${MANPATH}" TERMINFO=/mingw32/share/terminfo:${TERMINFO} ;; MINGW64) PATH="/mingw64/bin:${MSYS2_PATH}:${PATH}" PKG_CONFIG_PATH="/mingw64/lib/pkgconfig" MANPATH="/mingw64/share/man:${MANPATH}" TERMINFO=/mingw64/share/terminfo:${TERMINFO} ;; MSYS) PATH="${MSYS2_PATH}:/opt/bin:${PATH}" PKG_CONFIG_PATH="/usr/lib/pkgconfig:/lib/pkgconfig" TERMINFO=/usr/share/terminfo ;; *) PATH="${MSYS2_PATH}:${PATH}" ;; esac else PATH="${MSYS2_PATH}:${PATH}" fi
可見,三個 .bat 的區別就是 PATH 的設置,mingw32_shell.bat 優先使用 msys64/mingw32 下的工具,mingw64_shell.bat 優先使用 msys64/mingw64 下的工具,而 msys2_shell.bat 兩個都不使用,只用自身 msys 的工具。這么做的好處是當需要編譯 32bit Target 的項目時使用 mingw32_shell.bat,64 bit 使用 mingw64_shell.bat,各套工具互不干擾。
二、安裝 GCC
隨便哪個 shell.bat 下都可以
1. 查看可用的安裝包
pacman -Sl | grep gcc
可以看到以下三個
mingw32 mingw-w64-i686-gcc 4.9.1-3 mingw64 mingw-64-x86_64-gcc 4.9.1-3 msys gcc 4.8.2-2
分別對應於 msys 的三個 .bat 環境。這里先裝第一個,其他類似。
2. 安裝
pacman -S mingw-w64-i686-gcc
MSYS2 會自動將這個包裝在 msys64/mingw32 下,從之前的分析可知只有 mingw32_shell.bat 會用到這個目錄下的程序。
3. 運行
打開 mingw32_shell.bat 來試一下:
gcc --version
gcc.exe (Rev3, Built by MSYS2 project) 4.9.1 Copyright (C) 2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
三、安裝 Git
1. 下載 Git for Windows。安裝過程選擇 Git cheetah plug-in 和 Run Git from Windows Command Prompt,這樣 Vim 的 Vundle 插件可以調用 git。
由於安裝 MSYS2 時已設置了 HOME 環境變量,Git 會自動將配置文件放在 HOME 下,將來在 MSYS2 中使用時共用一套配置,方便。
安裝 MSYS2 的 git:
pacman -S git
2. 設置 autocrlf 為 input。
git config --global core.autocrlf input
由於設置了 HOME 環境變量,可以使 gvim 和 MSYS2 的 vim 共用一套配置文件:~/.vimrc,插件也可以統一放在 ~/.vim/ 下。在使用 Vundle 時,git clone 出的代碼是 unix 換行符可以避免 MSYS2 vim 讀取 Vundle 插件文件時出錯。
3. KDiff3 用作 diff 和 merge 工具很方便,也一並裝了吧。裝好后配置 Git:
git config --global merge.tool kdiff3 git config --global mergetool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
中間有空格也能正確處理。可以試一下 git mergetool 和 git difftool 看看是否配置正確了。為避免每次用 git difftool 時都提示確認,下面兩行也可以設一下:
git config --global mergetool.prompt false git config --global difftool.prompt false
四、安裝 gVim 並配置 Vundle 進行插件管理
1. 安裝 gVim 到 D:\develop\Vim,組件選擇 full
2. 由於設置了 HOME 環境變量,就可以將 gvim 的配置統一放在 HOME 目錄下
將 Vim/vimfiles 下的所有文件夾刪除,在 ~/.vim 下新建 bundle 文件夾
3. 參考 Vundle.vim 的教程設置好 Git 的 Curl 腳本:
https://github.com/gmarik/Vundle.vim/wiki/Vundle-for-Windows
4. 將 gmarik/Vundle.vim git clone 到 ~/.vim/bundle 下:
cd ~/.vim/bundle git clone https://github.com/gmarik/Vundle.vim.git
5. 繼續參考 Vundle.vim 的教程修改 ~/.vimrc 文件,將內容添加到開頭處。雖然是在 Windows 環境下使用 gvim,但由於設置了 HOME 環境變量,以下設置按 Lunix 配置更方便:
set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin()
以后插件會自動安裝在 $HOME/.vim/bundle 目錄下。
6. 修改 .vimrc 添加要安裝的插件包,然后在 gVim 中運行
:PluginInstall
7. 現在可以使用 :h vundle 來查看 Vundle 的幫助了。
五、其他配置
1. 將 gVim 目錄加入 Path 環境變量,設置 Git 使用 gvim 作為默認 editor:
git config --global core.editor gvim
2. 要將常用工作目錄映射到 MSYS2 的 ~ 下,可用 mount 命令(加入 .bash_profile 中):
mount -fo binary,noacl,posix=0,user D:/docs ~/docs
這樣打開 MSYS2 shell 后直接 cd docs 即可進入常用工作目錄。
3. 其他工具的安裝類似,查看 pacman 手冊即可。常用的:
列出可用的包
pacman -Sl
安裝
pacman -S package-name
刪除
pacman -R package-name
4. 將配置同步到 github 上!
a. 新建 repository UserConfig,添加 .gitignore 文件,內容為 *,默認忽略所有文件。
b. git clone 到本地
git clone https://github.com/tadvent/UserConfig.git
c. 將其中的 .git 目錄和 .gitignore README.md 文件移動到 ~/ 下。
d. 新建 msys2 分支並添加要同步的文件,over~
git checkout -b msys2 git add -f .bash_profile .bashrc .gitconfig .vimrc git commit git push origin master msys2