ひゃたさんはエンジニアに戻りました

肩書がエンジニアに戻った人が書く技術トピック

msys2+zsh+git+preztoの環境を作る

会社のPCはUnity3DでShader書くためにWindowsにほぼ固定された*1

とはいえ、zshとか使いたいのでmsys2を導入した。ついでにzshrcの編集とかなるべくやりたくないのでpreztoを導入してMacを使っていた頃と似たようなコマンドライン環境を手に入れる

msys2

MSYS2 installer

上記の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

pacman -S zsh

念願のzshをインストール

インストールが終わったら、ターミナルを一旦終了し、C:\msys64\msys2_shell.batを書き換える

現状だと39行目

start %WD%mintty -i /msys2.ico /usr/bin/bash --login %*

bashzshに変更する

start %WD%mintty -i /msys2.ico /usr/bin/zsh --login %*

メモとして、ここに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がインストールされるはず

参考URL

*1:Compute shadersはまだMac OS Xで動かない Unity - マニュアル: コンピュートシェーダー

*2:Windowsのフォントレンダリングをなんとかしてくれるソフト