#古いバージョンのtmuxで①マウス操作と②コピぺを両立する
###【この記事で解決すること】
- tmux外部との文字列コピー&ペースト(tmux↔️ターミナル端末側OS)
- tmuxのマウス操作(入力ペイン切替/ペイン境界調整)
- tmux1.8(AmazonLinux2標準)の設定ファイル(.tmux.conf)
###【この記事がある理由】
- tmuxのマウス機能有効->通常キー操作でコピぺができなくなる
- ネットには「通常キー操作でコピぺできる様にする」方法がたくさん
- コピぺには「キー操作を変更するだけでOK」
- その他混乱する要因もあり整理
- AWS AmazonLinux2を選ぶと、古いバージョンのtmux1.8が入ります。一方で最新バージョンは2.7。(2018.10.7時点)
- インストールするにはAmazonLinux未検証リポジトリへの接続が必要
- そもそもAmazonLinux選ぶ人は↑みたいなことはやるつもりないはず
###【この記事の対象者】
- EC2インスタンスにssh接続が済んだ方
- セッション管理にtmuxを使う方
- tmux最新バージョン(2.7等)をインストールせず、すぐに運用したい方
- tmux コピーモード
C-b [
とか使いたくない人
0.準備
- 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の問題は、「コピーモードを使いたい」「キー操作を絶対変えたくない」という要望にすぎないのではないか?