【Windows】Cygwinで tmux を使ってみた

OSがwindowsで仮想環境禁止, proxy制約の環境でどうしてもUNIX環境が欲しかったのでCygwinを入れてみましたが、画面分割がしたいということでGNU screen入れたけど微妙だったのでtmuxにしてみた。

tmuxは terminal-multiplexer で複数のプログラムを簡単にひとつのターミナル上で切替可能で, またそのターミナルからプログラム群を切り離し(detach)、別のターミナルに繋ぎ直す(attach)ことができる。リモートマシンの操作にも便利。

tmux

apt-cygをインストールする

apt-cygで使うための wget / tar /gawk /bzip2 / gitをsetup.exeからインストール。
proxy環境だったので git のproxyを設定します。

$ git config --list
 # They will override the value in the environment.
 https_proxy = https://xxx:8080/
 http_proxy = https://xxx:8080/
 ftp_proxy = https://xxx:8080/

apt-cygをインストールします。

$ git clone https://github.com/kou1okada/apt-cyg.git
$ cd apt-cyg
$ chmod +x apt-cyg
$ apt-cyg -m ftp://ftp.iij.ad.jp/pub/cygwin/ update

シェルスクリプト実行時に $’\r’: command not found がでたらdos2unixで改行コードを変換します。

tmuxをインストールする

tmuxインストールの前準備です。

$ apt-cyg install make autoconf libtool pkg-config libncurses-devel

tmuxで使う libevent をインストールをします。

$ git clone https://github.com/libevent/libevent.git
$ cd libevent
$ zsh autogen.sh
$ ./configure && make && make install

libeventが /usr/local/ 以下にインストールされていることを確認して, tmuxのインストール。

$ git clone https://github.com/ThomasAdam/tmux.git
$ cd tmux
$ zsh autogen.sh
$ ./configure CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib" --prefix=/usr/local
$ make CFLAGS='-O -I/usr/include/ncurses'
$ make install