MSYS2 + MinGW-w64 + Git + gVim 環境配置


先裝 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


免責聲明!

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



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