AWS AmazonLinux2 での tmux設定


古いバージョンのtmuxで①マウス操作と②コピぺを両立する


【この記事で解決すること】


  1. tmux外部との文字列コピー&ペースト(tmux↔️ターミナル端末側OS)

  2. tmuxのマウス操作(入力ペイン切替/ペイン境界調整)

  3. tmux1.8(AmazonLinux2標準)の設定ファイル(.tmux.conf)


【この記事がある理由】


  • tmuxのマウス機能有効->通常キー操作でコピぺができなくなる

  • ネットには「通常キー操作でコピぺできる様にする」方法がたくさん

  • コピぺには「キー操作を変更するだけでOK」

  • その他混乱する要因もあり整理


    • AWS AmazonLinux2を選ぶと、古いバージョンのtmux1.8が入ります。一方で最新バージョンは2.7。(2018.10.7時点)

    • インストールするにはAmazonLinux未検証リポジトリへの接続が必要

    • そもそもAmazonLinux選ぶ人は↑みたいなことはやるつもりないはず




【この記事の対象者】


  1. EC2インスタンスにssh接続が済んだ方

  2. セッション管理にtmuxを使う方

  3. tmux最新バージョン(2.7等)をインストールせず、すぐに運用したい方

  4. tmux コピーモード C-b [ とか使いたくない人



0.準備


  1. tmuxをyumでインストール

sudo yum install tmux


【注意】


  • マウス環境であれば、tmuxコピーモード C-b [ は使う必要がありません


  • この時点では普通にコピぺ出来ます。マウス選択し通常キー操作(C-c C-v)でコピぺ。

  • この後の「tmuxマウス操作機能」を有効にするとコピぺ出来なくなります


1. tmuxの設定(「tmuxマウス操作機能」を有効化)


.tumx.conf

~~抜粋~~

#マウス操作を有効にする
set-option -g mouse-select-pane on
set-option -g mouse-select-window on
set-option -g mouse-resize-pane on

# マウススクロール反映
set-window-option -g mode-mouse on



【注意】


  • 通常キー操作(C-c C-v)でコピぺ出来なくなっています。

  • 以下のキー操作でコピぺ出来ます。

  • 本質的には、tmuxのコピーモードを回避しているだけ です。


2. コピぺの新キー操作(「tmuxマウス操作機能」有効化時)

もちろん、tmuxコピーモード C-b [ とか使いません

使用するターミナルソフトによってキー操作が異なります。


MacOS : Terminal.app


コピー

Shift+Command+マウスでコピーしたい箇所を選択

ペースト

Shift+Command+マウス右ボタンをクリック



MacOS: iTerm2

[激しく推奨!] Optionキーを使うだけ!


コピー

Option+マウスでコピーしたい箇所を選択、通常キー操作(Command+c)

ペースト

通常キー操作(Command+v)



xterm


コピー

Ctrl+Shift+マウスでコピーしたい箇所を選択

ペースト

3ボタンマウス: Ctrl+マウス真ん中ボタンをクリック

上記以外   : Ctrl+Shiftマウス右ボタンをクリック



私の使っている tmux設定


.tumx.conf

#マウス操作を有効にする

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

# マウススクロール反映
set-window-option -g mode-mouse on

# 異なるサイズの端末からアクセスした時にリサイズ
setw -g aggressive-resize on

# 256 色対応
set -g default-terminal "xterm-256color"
set -g terminal-overrides "term:colors=256"
set -g display-time 2000

# バインドキーを vi 風に
set-window-option -g mode-keys vi

# 日本語対応
setw -g utf8 on
set -g status-utf8 on




感想

tmuxのコピぺの話は、3つのトピックがネット上でごっちゃになっており、よくよく読まないと混乱します。


tmuxコピーモードの話題

「ターミナル端末側でコピぺ機能が使えない」大昔の環境下を仮定。現代では正直何が便利なのか?この機能がないと困る状況が思い浮かばない。


tmuxマウス操作機能有効化による不具合(本記事)

マウス操作機能有効化でおかしくなったので回避したいという話。マウスで領域選択した際にコピーモードが起動してしまい、OSのクリップボードに入らないため。ネットに数ある対策ではコピーモードの中でOSクリップボードに転送するスクリプトを挿入。一方、本寺記事の対策はtmuxのコピーモードを回避するキー操作を紹介してる。


macOS版tmuxの問題:

MacOS側とtmux側でクリップボード共有がうまくできない問題。記事内に「reattach-to-user-namespaceをインストールしましょう」という説明があるもの。tmux 2.6で問題解消されたり、設定ファイル内のコマンド名が変わったりしていて、説明記事は多い。

tmuxの問題は、「コピーモードを使いたい」「キー操作を絶対変えたくない」という要望にすぎないのではないか?


【参考サイト】


  1. https://scripter.co/tmux-shift-plus-mouse/

  2. https://qiita.com/upinetree/items/cd80bc7865c52091be10