msys2+zsh+git+preztoの環境を作る
会社のPCはUnity3DでShader書くためにWindowsにほぼ固定された*1
とはいえ、zshとか使いたいのでmsys2を導入した。ついでにzshrcの編集とかなるべくやりたくないのでpreztoを導入してMacを使っていた頃と似たようなコマンドライン環境を手に入れる
msys2
上記のURLからインストーラーを入手できので、それでインストール(ここでは64bit版)。デフォルトならc:\msys64にインストールされる
終わったら、プログラムグループにMSYS2 64bitというフォルダができるのでMSYS2 SHELLをクリックする
これでシェルが起動するので、公式サイトの説明に従いコマンドを実行
update-core
これでシステムがアップデートされる
メモとして、Mactype*2が起動していると、証明書エラーが出てアップデートできなくなるので、Mactypeをアンインストールするか、msys2でMactypeを使わないように無視設定をする
pacman -Su
これでインストールされているパッケージの更新ができる
msys2ではArch Linuxで使われているpacmanでパッケージ管理をする
これが終わったら、一旦ターミナルを終了する(bashなどが更新されるため)
各種コマンド
git
まずはgitからインストール
pacman -S git
これでインストール完了
git --version
とコマンドを実行すれば
git version 2.7.2
Gtiのバージョンが表示されるはず
winpty
msys2で標準でついてくる端末エミュレータのminttyはGitのような対話型のコマンドラインWindowsアプリをうまく扱えない問題があるので、winptyを入れて対策をする
pacman -S winpty-git
でインストール完了。-gitとあるが、別にGit以外にもNode.jsなどにも使える
今後Gitを使う場合は
winpty git
と使うと、正常に対話型のインタフェースが使えるはず
また、Windowsの通常のコマンドラインアプリを使う場合もそのまま実行すると文字化けすることがあるので、winpty使って回避することができる
winpty ipconfig
zsh
念願のzshをインストール
インストールが終わったら、ターミナルを一旦終了し、C:\msys64\msys2_shell.batを書き換える
現状だと39行目
メモとして、ここにwinptyを追加してどのコマンドラインアプリもwinpty経由で使うという方法もある
start %WD%mintty -i /msys2.ico /usr/bin/winpty /usr/bin/zsh --login %*
ただし、後述のpreztoがうまく動かなかったり、zshの場合だと「%」が何故かコマンドを実行するたびに出てくるというバグにあたってしまうのでおすすめできない
必要によってはmingw64_shell.batやmingw32_shell.batも同様に書き換える
prezto
GitHub - sorin-ionescu/prezto: The configuration framework for Zsh
preztoも公式サイト通りにインストールする
git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
gitで取得し
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
をコピペして、コマンドラインで実行。必要なファイルが生成される
ターミナルを再起動すればpreztoがインストールされるはず