Windows
tmux
msys2

MSYS2でtmuxを使う

More than 3 years have passed since last update.


【はじめに】

MSYS2上でtmuxを動作させる手順をまとめました。


MSYS2の導入はこちら の記事をどうぞ



【tmuxの導入】

MSYS2では、tmuxパッケージが提供されていますので、パッケージマネージャ(pacman)から

$ pacman -S tmux

で簡単に導入できます。

一応バージョン確認

$ tmux -V

tmux 2.0


【tmuxの起動】

tmuxの起動は

$ tmux

で問題なく動作します。

これで一見うまくいっているように見えますが、

$ exit

を実行して一度tmuxを終了した後に、再度起動させようとすると、

$ tmux

“failed to connect to server: Permission denied”

とエラーが表示され、tmaxが起動できません。

tmuxを再度起動させるためには、/tmp ディレクトリ以下にある tmux-****** ディレクトリを消去した後に再起動する必要があるようです。

しかしながら、このディレクトリ削除の作業を毎回行うのは面倒なので、こちら の投稿にあるように

alias tmux='rm -rf /tmp/tmux* && tmux'

.bashrcに設定しておくことで回避しましょう。


Note : 上記の方法で、毎回新たにtmuxを起動する(新しいセッションを作成して起動)することはできるのですが、前回のセッションにAttachしたり、複数のセッション間を移動するようなことは出来ません。 (何か情報があるかたがおりましたらお教えください)



【基本的な操作方法】

一応tmuxの主なコマンドを挙げておきます

機能
コマンド

Window作成
Ctrl+b c

次のWindow
Ctrl+b n

前のWindow
Ctrl+b p

Window選択
Ctrl+b 数字

Window終了
Ctrl+b &

横分割
Ctrl+b "

縦分割
Ctrl+b %

ペイン移動
Ctrl+b o

ペイン終了
Ctrl+b x


【マウスモードの設定】

次に、tmuxの操作をマウスを使って行えるようにマウスモードの設定をします。

これは設定ファイル(~/.tmux.conf) に以下の設定を追記します。

(設定ファイルがない場合は作成してください)


~/.tmux.conf

set-option -g mode-mouse on

set-option -g mouse-utf8 on
set-option -g mouse-resize-pane on
set-option -g mouse-select-pane on
set-option -g mouse-select-window on

これにより、マウスを使っての

・Windowの切り替え

・Paneの移動

・Paneのサイズ変更

・スクロール

を行えるようになります。

マウスモードを設定すると従来のターミナル(mintty)で行えていた、コピー/ペースト処理が行えなくなりますが、「SHIFTキーを押したままの状態でマウスを操作する」ことで通常通りの選択/コピー/ペーストが行うことが出来るようです(今のところ私はこれで特に不便を感じておりません)。


【感想】

残念ながら、Session(attach/detach)は動作しませんでしたが、Window/Paneは問題なく動作しているので、単に複数ターミナルを使用したい場合は十分使えるレベルと思います。