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

原文? http://dantvt.is-programmer.com/posts/63161.html

以前用 MSYS 的多,最近重裝系統順帶把環境重新配一下,發現 MSYS2 挺順手的。

一、安裝 MSYS2

先裝 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" ]
thencase "$MSYSTEM" inMINGW32)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
elsePATH="${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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/447253.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/447253.shtml
英文地址,請注明出處:http://en.pswp.cn/news/447253.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MAC版 的最新Docker 2.2版本配置國內代理的解決辦法

點擊Docker圖標,選擇Preference選項,進行國內代理的問題 輸入內容如下 {"experimental": false,"debug": true,"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.…

常用的Homebrew的命令的使用

(1)安裝軟件:brew install 軟件名,例如:brew install wget (2)搜索軟件:brew search 軟件名 (3)卸載軟件:brew uninstall 軟件名 (…

微軟正式提供Visual Studio 2013正式版下載(附直接鏈接匯總)

轉自 http://www.iruanmi.com/visual-studio-2013/ 微軟已經向MSDN訂閱用戶提供了Visual Studio 2013正式版鏡像下載,不過非MSDN用戶可以在微軟的Visual Studio 2013官方網站上下載到正式版鏡像(通過下載專業版本,已驗證與MSDN版本一致&…

《算法的樂趣》作者王曉華訪談:多看、多做、多想是秘訣

摘要:王曉華是一位熱衷于算法研究的程序員,他是CSDN算法專欄的超人氣博主,也是《算法的樂趣》一書的作者。近日,筆者采訪了王曉華,請他分享算法的經驗之道。 王曉華是一位熱衷于算法研究的程序員,他是CSDN…

基于Mac環境搭建以太坊私有區塊鏈進行挖礦模擬

第一步:相關軟件的安裝 go-ethereum客戶端安裝Go-ethereum客戶端通常被稱為Geth,它是個命令行界面,執行在Go上實現的完整以太坊節點。Geth得益于Go語言的多平臺特性,支持在多個平臺上使用(比如Windows、Linux、Mac)。Geth是以太坊…

Springboot 添加server.servlet.context-path

Springboot 2.0變革后的配置區別 1、springboot 2.0之前,配置為 server.context-path 2、springboot 2.0之后,配置為 server.servlet.context-path

vs2015 支持Android arm neon Introducing Visual Studio’s Emulator for Android

visual studio 2015支持Android開發了。 Microsoft released Visual Studio 2015 Preview this week and with it you now have options for Android development. When choosing one of those Android development options, Visual Studio will also install the brand new Vi…

基于linux環境采用update-alternatives 方式進行python版本切換

采用update-alternatives 切換版本 update-alternatives是Debian提供的一個工具,通過鏈接的方式,但是其切換的過程非常方便。首先看一下update-alternatives的幫助信息: $ update-alternatives --help 用法:update-alternatives …

FFmpeg示例程序合集-批量編譯腳本

此前做了一系列有關FFmpeg的示例程序,組成了《 最簡單的FFmpeg示例程序合集》,其中包含了如下項目:simplest ffmpeg player: 最簡單的基于FFmpeg的視頻播放器simplest ffmpeg audio player: 最簡單的基于FFmpeg的音頻…

基于Ubuntu環境使用docker搭建對于中文識別的chineseocr_lite項目

光學字符識別(OCR) 光學字符識別(OCR)目前已經有了很廣泛的應用,很多開源項目都會嵌入OCR 來擴展原有的能力,例如身份證識別、出入停車場的車牌識別、拍照翻譯等等本文介紹的開源的中文 OCR 項目&#xff…

Ubuntu環境使用conda安裝輕量級中文ocr開源項目chineseocr_lite,最簡單的方式

問題 接使用docker的方式來創建項目所報的錯誤選中文件之后,界面不停的繞圈,顯示不了對于圖片的識別結果,并且監控界面上出現錯誤提示如下ImportError: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory&a…

基于Ubuntu使用docker的方式來搭建基于Yolo3+crnn的Chineseocr識別

Docker Docker簡單易用,具體的安裝和配置可以看我的或者其他人的博客 安裝完之后,輸入以下命令安裝chineseocr并且開啟服務 docker pull zergmk2/chineseocr docker run -d -p 8080:8080 zergmk2/chineseocr 在瀏覽器輸入http://127.0.0.1:8080/ocr網…

c/c++ 內存使用指南 和實踐指導

如果你完全理解如下內容, 請聯系我:szu030606163.com, 討論更深層次合作 。 1. 大內高手—內存模型 單線程模型 多線程模型 2. 大內高手—棧/堆 backtrace的實現 alloca的實現 可變參數的實現。 malloc/free系列函數簡介 new…

mininet 應用實踐

教學目的與學時建議 能夠運用 mininet 可視化工具創建計算機網絡拓撲結構能夠運用 mininet 交互界面創建拓撲結構能夠運用 python 腳本構建計算機網絡拓撲結構建議:2 學時 實驗環境 下載并安裝虛擬機 VMware workstation;下載虛擬機鏡像( S…

使用百度大腦,導入aip以及相應的庫文件報錯問題

參考文章 github鏈接地址 具體操作 pip install githttps://github.com/Baidu-AIP/python-sdk.gitmasterfrom aip import 對應服務即可

一個通用的makefile寫法,自動推導文件的依賴關系

溫習之用。 假設有兩個頭文件目錄 header1,header2;兩個cpp文件目錄,src1,src2,一個lib目錄 寫一個完整的makefile步驟如下: 1 定義可執行文件的名稱 TARGET MyPro 2 指定此編譯工程所要使用的頭文件所在的目錄 INC -I. -Iheader1 -Iheader2 3 指…

實現基于darknet框架實現CTPN版本自然場景文字檢測 與CNN+CTCOCR文字識別的ChineseOCR搭建

Github地址 Github源碼地址 支持系統:mac/ubuntu python3.6 實現功能 文字檢測; 文字識別; 支持GPU/CPU,CPU優化(opencv dnn) docker鏡像服務(CPU優化版本) 下載鏡像 鏈接:https://pan.baidu…

50個c/c++源代碼網站

C/C是最主要的編程語言。這里列出了50名優秀網站和網頁清單,這些網站提供c/c源代碼。這份清單提供了源代碼的鏈接以及它們的小說明。我已盡力包括最佳的C/C源代碼的網站。這不是一個完整的清單,您有建議可以聯系我,我將歡迎您的建議&#xff…

在服務器上搭建基于yolo3 與crnn 實現中文自然場景文字檢測及識別,GPU版本

Github地址 參考地址作者大人,十分熱心,對于我的問題,提供了大量的幫助,使我少走了很多的彎路,在此表示由衷的感謝 注意事項 使用nvidia-smi命令查看cuda的版本,必須是10.1或者10.0,10.2是萬萬…

python TypeError can only concatenate tuple not str to tuple

原因分析 這個錯誤出現是因為執行元組之間的合并例子 tuple1 ("str",1,["a","b","c"],4) tuple2 ("hello",) print(tuple1[0]) print (tuple1[1:3]) print (tuple1[1:]) print (tuple2 * 2) print (tuple1tuple2) 注意事…