Windows 10にGVimベースのPython開発環境を構築する（１）インストール編


Windows 10, 64 bitビットPCにGVimベースのPython開発環境を構築します．第１回では，必要な環境をインストールしていきます．Windowsのアカウント名は daizu とし，主に `C:\Users\daizu\AppData\Local` 下に各プログラムを配置します． 

# Python

なにはともあれPython．Windowsでは [Anaconda](https://www.continuum.io/)  でPython環境を構築するのが便利です．今回は最小限のパッケージのみをインストールするために [Miniconda](http://conda.pydata.org/miniconda.html) を使います．MinicondaのページでWindows/Python 3.5/64-bit を選んでダウンロードします．

インストール対象の選択では，Just for me を選び，Destination folder をデフォルト設定の `C:\Users\daizu\Miniconda3` から `C:\Users\daizu\AppData\Local\Miniconda3` に変更します．Advanced Options は両方ともチェックします．デフォルトの設定がされるほか，実行ファイルの置かれたディレクトリが `PATH` に追加されます．

# MinGW-w64 - for 32 and 64 bit Windows
コンパイル環境を整えます．[MinGW-w64](https://sourceforge.net/projects/mingw-w64/ ) のDownloadページからexeファイルをダウンロード・実行してインストールします．途中のダイアログでは，下記の選択をします．

* Architecture: x86_64
* Thread: posix
* Exception: seh
* Build Version: 0

また，Destination folderを `C:\Users\daizu\AppData\Local\mingw-w64` に変更します．最後にコントロールパネルの環境変数の設定において，PATHに `C:\Users\daizu\AppData\Local\mingw-w64\mingw64\bin` を追加します．

参考URL
> http://www.geocities.jp/penguinitis2002/computer/programming/MinGW-w64.html

# MSYS2

実行ファイル群をインストールします．[MSYS2](https://msys2.github.io/) にアクセスし，msys2-x86_64-xxxxxxxx.exe (xxxxは年月日) をダウンロードし，実行します．インストール先フォルダには， `C:\Users\daizu\AppData\Local\msys64` を指定します．最後にコントロールパネルの環境変数の設定において，PATHに `C:\Users\daizu\AppData\Local\msys64\usr\bin` を追加します．

後で必要となるtarコマンドをインストールします．コマンドプロンプトを開き，`C:\Users\daizu\AppData\Local\msys64` 下において，

```bat
$ msys2_shell
```

とすると，シェルがmsys2のものに変わります．変わったシェル下で，

```bat
$ update-core
$ pacman -S tar
```

としてtarをインストールします．

参考URL
> http://www.geocities.jp/penguinitis2002/computer/programming/MinGW-w64.html


# Git

[git for windows](https://git-for-windows.github.io/) からダウンロードしインストールします．途中のAdjusting your PATH enviroment で Use Git from the Windows Command Prompt を選びます．他はデフォルトのままとします．

# Lua

[Luaのダウンロードページ](http://www.lua.org/download.html) からソースをダウンロードします．コマンドプロンプトを開き，

```bat
$ cd Downloads
$ tar zxf lua-5.3.2.tar.gz
```
と展開します．そのままのMakefileではコンパイルできないので，下記参考URLに記載のgitレポジトリより，mingw64用のMakefileを取得します．

```bat
$ git clone https://github.com/akaneko3/Lua-makefile
$ cd lua-5.3.2
$ cp Makefile Makefile.bak
$ cp ..\Lua-makefile\Makefile .
```

Makefileをエディタで開き，Luaのバージョンが設定されている箇所を5.3.2になるように変更します．続いて

```bat
$ mingw32-make  mingw
```

でコンパイルします．その後，`$ mingw32-make install`で各ファイルをコピーしようとしましたが，うまく実行できなかったので，Makefileの記述をもとに，手動で移動しました．Luaの実行ディレクトリ`C:\Users\daizu\AppData\Local\lua-5.3.2\`を作成し，その下に`bin`，`include`，`lib`サブディレクトリをさらに作成します．Makefileには，

```ini
TO_BIN= lua.exe luac.exe
TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp  
TO_LIB= liblua.a
```

とありますので，その通りに該当ファイルを`C:\Users\daizu\Downloads\lua-5.3.2\src`からコピーします (＊）．最後にコントロールパネルの環境変数の設定において，PATHに`C:\Users\daizu\AppData\Local\lua-5.3.2\bin`を追加します．

(＊）[2016/02/28追記] `bin`ディレクトリには，`lua.exe`，`luac.exe`のほかに，`lua53.dll`を`src`ディレクトリからコピーする必要があります．

参考URL
> http://qiita.com/akaneko3/items/c63b9d6589732388bebb

# GVim

GitHubからソースを取得します．コマンドプロンプトを開き，

```bat
$ cd AppData\Local
$ git clone https://github.com/vim/vim.git
$ cd git
$ git checkout v7.4.1161
```

とします．最後の行は，[Kaoriyaさん](http://www.kaoriya.net/)の最新Vimのバージョン（[2016/01/24版](http://www.kaoriya.net/news/2016/01/24/)）に合わせるために実行しました．

コンパイルするためのバッチファイル `makevim64.bat` を下記の参考URLからダウンロードし，`C:\Users\daizu\AppData\Local\vim` にコピーします．LuaとPythonのバージョンに合わせるために，`makevim64.bat` を以下のように編集します．

```bat:makevim64.bat
setlocal
:: path to MinGw64
set USERNAME=daizu
set USERDOMAIN=

set PYTHON3=C:/Users/daizu/AppData/Local/Miniconda3
set PYTHON3_VER=35
set DYNAMIC_PYTHON3=yes

set LUA=C:/Users/daizu/AppData/Local/lua-5.3.2
set LUA_VER=53
set DYNAMIC_LUA=yes

md bin
cd src

:: Clean
mingw32-make -f Make_ming.mak GUI=yes clean ARCH=x86-64

:: GUI x64
mingw32-make -f Make_ming.mak GUI=yes OLE=no FEATURES=HUGE ARCH=x86-64

set OUTDIR=../bin
copy *.exe "%OUTDIR%"
copy .\GvimExt\*.dll "%OUTDIR%"
copy *.dll "%OUTDIR%"
copy .\xxd\*.exe "%OUTDIR%"

cd ..
endlocal
```

コマンドプロンプトで，`C:\Users\daizu\AppData\Local\vim` に移動し，

```bat
$ makevim64.bat
```

としてコンパイルします．

コンパイルに成功したら，`C:\Users\daizu\AppData\Local` に `vim74-daizu` フォルダを作成し，さらにその下に `vim74` ディレクトリを作成します．`vim` をコンパイルしたディレクトリ (`C:\Users\daizu\AppData\Local\vim`)下の `runtime` 内のディレクトリとファイル一式を`vim74`下にコピーします．次にコンパイルした実行ファイル `gvim.exe` と `vimrun.exe` を `C:\Users\daizu\AppData\Local\vim\src` から `C:\Users\daizu\AppData\Local\vim74-daizu` にコピーします．そして，参考URLから64ビット用の `iconv.dll`, `libintl.dll` を取得し，同じく `vim74-daizu` ディレクトリ下にコピーします．また，  PATHに ` C:\Users\daizu\AppData\Local\vim74-daizu` を追加しておきます．以上で，GVimが実行できるようになりました．

GVimの設定ファイルは，`C:\Users\daizu\AppData\Local\vim74-daizu` 下の `vimfiles` ディレクトリを作成し，その中に用意します．今回はこれ自体をGitのレポジトリとしたいので，`C:\Users\daizu\AppData\Local\vim74-daizu` において，

```bat
$ git init vimfiles
```

とします．`vimfiles` のなかに `_vimrc`，`_gvimrc` をつくります．以下は動作確認のためだけの例です．

```vim:_vimrc
 set enc=utf-8
```

```vim:_gvimrc
 colorscheme desert
```

これらをホームディレクトリにリンクします． 管理者権限でコマンドプロンプトを開き，

```bat
$ mklink c:\Users\daizu\_vimrc c:\Users\daizu\AppData\Local\vim74-daizu\vimfiles\_vimrc
$ mklink c:\Users\daizu\_gvimrc c:\Users\daizu\AppData\Local\vim74-daizu\vimfiles\_gvimrc
```

とします．


参考URL
> https://sites.google.com/site/fudist/Home/vim-nihongo-ban/mingwvim



# Neobundle

Vimのプラグインを管理するのに，[Neobundle](https://github.com/Shougo/neobundle.vim) を使います．`C:\Users\daizu` 下で

```bat
$ mkdir -p .vim\bundle
$ cd .vim\bundle
$ git clone https://github.com/Shougo/neobundle.vim
```

とします．`_vimrc` は下記URLを参考にしました．


参考URL
 > http://qiita.com/poad1010/items/de16d9a1af78687c87cf

# 最後に

これまでのインストール作業の結果，ユーザーの環境変数は，下図のようになりました．

![path.png](https://qiita-image-store.s3.amazonaws.com/0/115267/9f46b414-10b8-714f-f28a-b9a1da5e551a.png)

Gitはインストール先を選べませんでしたので，やむなく `Program Files (x86)` 以下に入っています．

# その他

## vimproc

今回は説明を省略しましたが，vimprocのコンパイルは，下記コマンドで可能です．

```bat
$ cd ~\.vim\bundle\vimproc
$ mingw32-make
```

参考URL
> http://qiita.com/akase244/items/ce5e2e18ad5883e98a77

##  IPAfont

GVimのマルチバイトフォントにはIPAゴシックを使うと見栄えがよいです．下記URLからダウンロードし，フォントをインストールします．
>http://ipafont.ipa.go.jp/old/ipafont/download.html


## Pythonパッケージ

Pythonのコーディングに役立つパッケージをインストールします．

```bat
$ conda install jedi flake8 pytest nose
$ pip install autopep8
```

## CapsキーをCtrlキーとして使う

VimではCtrlキーを多用するので，使わないCapsキーにCtrlキーの機能を割り当てます．

参考URL
> http://ascii.jp/elem/000/000/927/927191/