
ターミナルマルチプレクサ tmux をWindows+MSYS2+tmuxinator導入(zsh)
2017年3月18日自宅のクライアント環境は、Win10+Macなのですが、社内がWin7。
これまでは...Windows=puttyで、Mac=iTermの環境でした。
また、Mac内でもvimなどを使うので、厳密にいうと…
・Windows+putty+Linux環境
・Mac+iTerm+Linux環境
・Mac+iTerm環境
この3つの環境で、Vimなどを利用してます。
Win10に統一されれば、Win10環境で "Bash on Ubuntu on Windows" の環境を作るのですが。。
これまで、puttytabなどは使ってました。
が、それではMacで使えない。
iTermは凄くいい感じなんですが、当然Windowsには無い。
これって、すごく無駄というか... 面倒。
そこで!tmux。
たまたま見つけて、去年くらいから少し利用してますが、いい感じです。
そこで、以下の構成で統一感を出す!というイメージで 手順を残しておこうと思います。
・Windows環境
Win7 - MinGWを利用(MSYS2)
Win10 - Bash on Ubuntu on Windows
・Mac環境
iTermですべて
と、いうわけで Windows環境(Win7)で tmux を使えるようにして行きます。
・MSYS2のインストール
MSYS2 のインストーラ "msys2-x86_64-*.exe" を以下からダウンロード。
MSYS2
インストーラを実行してインストール。
MSYS2 の起動アイコンは "MSYS2 Shell"、"MinGW-w64 Win64 Shell"、"MinGW-w64 Win32 Shell" の 3つ。
MSYS2 と別に MinGW をインストールするのであれば、"MSYS2 Shell" を使う。
MSYS2 でインストールした MinGW 64 bit 版を使うのであれば、"MinGW-w64 Win64 Shell" を利用しましょう。
インストール後、インストールフォルダの bin フォルダをパスに追加。
インストールパスに空白を含むと問題が起る場合があるので、"C:\" の直下に入れることにする。
- MSYS2 は、開発環境を含まないので、私の場合 必然的に、利用するのは "MinGW-w64 Win64 Shell" になります。
- もしも、MinGWを単独で入れたい方は...
-- MinGW/64bitのインストール
--- MinGW 64 bit 版のインストーラ "mingw-w64-install.exe" を以下からダウンロード。
--- MinGW-w64 - for 32 and 64 bit Windows
では、mingw64.exeを "管理者として実行" 後、セットアップしていきます。
・まずは、パッケージをアップデート
$ pacman -Su
・開発環境パッケージをインストール
MSYS2 で MinGW などの開発環境を導入します。
$ pacman -S base-devel $ pacman -S msys2-devel $ pacman -S mingw-w64-x86_64-toolchain
"パッケージセットの中で、どれを入れるの?" 的なウィザードは、"all" で大丈夫です。
100パッケージ以上を入れますので、コーヒーでも飲んでお待ちを。
ターミナルのmintyでは、対話式プログラムで問題をよく起こすようです。
そこで、
・pythonなどの対話式プログラム対策に、"winpty" をインストール
$ pacman -S winpty
・alias設定
alias python='winpty python'
・あとは、お好みで必要なものを
$ pacman -S <<package...>>
さて。
いよいよ、tmuxを入れていきます。
MacだとHomebrewでサクっとインストール可能です
・tmuxのインストール
$ pacman -S tmux
2017/03/15現在、2.1.263が最新のようです。
続いて、tmuxinatorなどを入れていきます。
tmuxinatorは、ターミナルの画面情報(ペイン)を記憶してくれたり、起動時にペイン単位でコマンドがプレ実行出来るものです。
これが...便利すぎるのです。
・事前に、rubygemsをインストール
$ pacman -S rubygems
・本命のtmuxinatorをインストール
$ gem install tmuxinator
Windowsファイアウォールの確認画面が出ると思いますので、許可してあげてください。
以下のエラーが出る場合は、環境変数にパスが追加されていません。
WARNING: You don't have /home/hogehoge/.gem/ruby/<
>/bin in your PATH,
gem executables will not run.
Windowsの環境変数に、PATHを通してあげましょう。
さらに、以下のエラーが出る場合は、次の方法で対応してください。
ERROR: While executing gem ... (Errno::ENOENT)
No such file or directory @ rb_file_s_symlink - (/home/hogehoge/.gem/ruby/2.6.10/gems/tmuxinator-0.9.0/completion/tmuxinator.fish, /home/hogehoge/.gem/ruby/2.6.10/gems/tmuxinator-0.9.0/completion/mux.fish)
この警告の理由は、Rubyの既知の問題です。
MSYS2環境にこだわる必要性は全くありませんので。Win10ならば、"Bash on Ubuntu on Windows" 使いましょう。
・Rubygemsアンインストール(混乱しないように)
$ pacman -R rubygems
・RubyInstallerを利用
上記のURLから、RubygemsInstallerをダウンロードします。
その後、"パスを通す" にチェックを入れて、インストール。
・RubygemsInstallerをインストール
$ wget https://rubygems.org/rubygems/rubygems-2.6.11.zip $ unzip rubygems-2.6.11.zip $ cd rubygems-2.6.11 $ /c/Ruby23-x64/bin/ruby setup.rb
実行前に、rubyに必ずパスを通しておいてください
$ ln -s /c/Ruby23-x64/bin/ruby.exe /usr/bin/ruby $ ln -s /c/Ruby23-x64/bin/gem /usr/bin/gem
・MSYS2ターミナルで、tmuxinatorをインストール
$ gem install tmuxinator __________________________________________________________ .......................................................... Thank you for installing tmuxinator. Make sure that you've set these variables in your ENV: $EDITOR, $SHELL You can run `tmuxinator doctor` to make sure everything is set. Happy tmuxing with tmuxinator! .......................................................... __________________________________________________________ Successfully installed tmuxinator-0.9.0 Parsing documentation for tmuxinator-0.9.0 Installing ri documentation for tmuxinator-0.9.0 Done installing documentation for tmuxinator after 0 seconds 1 gem installed
・最終、私の環境ではこちらの結果になります。
$ /c/Ruby23-x64/bin/ruby -v ruby 2.3.3p222 (2016-11-21 revision 56859) [x64-mingw32] $ /c/Ruby23-x64/bin/gem -v 2.6.11 $ whereis tmux tmux: /usr/bin/tmux.exe /usr/share/tmux /usr/share/man/man1/tmux.1.gz $ whereis tmuxinator tmuxinator: /c/Ruby23-x64/bin/tmuxinator /c/Ruby23-x64/bin/tmuxinator.bat
tmuxinatorは、環境変数のEDITORと、SHELLを利用します。
以下で確認/変更しておきましょう。
・環境変数の確認/変更
$ echo $EDITOR $ echo $SHELL
あとは、設定ファイルで、お好きなターミナル環境にしてくださいね。
$ vim ~/.tmux.conf $ vim ~/.tmuxinator/<<Name>>.yml