MSYS2でtmuxを使う

  • 19
    Like
  • 0
    Comment
More than 1 year has 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は問題なく動作しているので、単に複数ターミナルを使用したい場合は十分使えるレベルと思います。