tmux
仮想端末
接続を切っても(急に切れても)元の状態を復元できたり、画面を分割できたり
tmuxのインストール
libevent2.0以上が必要なのでインストール
# yum remove libevent libevent-devel libevent-headers … 古いlibeventがあれば削除(CentOS6の場合)
# yum install libevent2-devel … libeventをインストール(CentOS6の場合)
# yum install libevent-devel … libeventをインストール(CentOS7やAmazonLinuxの場合)
cursesが必要なのでインストール
# yum install ncurses-devel
tmuxをインストール
# cd /usr/local/src
# wget https://github.com/tmux/tmux/releases/download/2.6/tmux-2.6.tar.gz
# tar -xvf tmux-2.6.tar.gz
# cd tmux-2.6
# ./configure && make
# make install
「make[1]: `install-data-am' に対して行うべき事はありません.」などが表示されたが、インストールはできた
tmuxを起動。画面下に緑のラインが表示されれば成功
# tmux … tmuxを起動
# exit … tmuxを終了
CentOSにtarからtmuxを導入する - Qiita
https://qiita.com/trisland/items/29f81b14fc350287bfd1
ターミナル多重化ソフト tmux を使う : まだプログラマーですが何か?
http://dotnsf.blog.jp/archives/3704913.html
Homestead環境へのインストールは、以下を参考にした
参考にしたのは「依存パッケージのインストール」部分のみで、tmuxのインストールは上記手順で行った
(一般ユーザで sudo を使いながらインストールした)
[tmux 2.3対応] tmuxの最新をソースからビルドする - Qiita
https://qiita.com/koara-local/items/7e8391b837fb6f834cb9
tmuxの操作
■基本操作
Ctrl+B ... デフォルトのプレフィックス。この後に続けて何かを入力することで、色々な操作ができる
※プレフィックスは設定ファイルで変更できる
以降、プレフィックスは [Prefix] と表記する
tmux ... tmuxを起動
tmux attach ... 残ったセッションからtmuxを起動(「[Prefix] → D」で抜けた場合。突然接続が切れて再接続したい場合)
tmux a ... 同上
exit ... tmuxを終了
[Prefix] → D ... tmuxから抜ける(tmux attach で再開できる)
[Prefix] → C ... 新しいタブを開く
[Prefix] → N ... 次のタブへ移動
[Prefix] → P ... 前のタブへ移動
[Prefix] → ? ... コマンドのヘルプを表示
■コピーモード
[Prefix] → [ ... コピーモード開始
Q もしくは Esc ... コピーモード終了
としてからなら、Windowsから選択&コピーができる
矢印やマウスホイールでのスクロールもできるようになるので、作業履歴を遡りたいときにも使える
■画面分割
[Prefix] → " ... 画面を水平に分割
[Prefix] → % ... 画面を垂直に分割
[Prefix] → 矢印 ... 分割した画面を移動
exit ... 分割した画面を終了
[Prefix] を押しながら矢印、で画面のサイズ変更ができる
連打でどんどん上下左右にサイズ変更できるが、少し間を置くと受け付けなくなる
以下のコマンド入力でもサイズ変更できる
[Prefix] → :resize-pane -U 数字 ... 上方向にサイズ変更
[Prefix] → :resize-pane -D 数字 ... 下方向にサイズ変更
[Prefix] → :resize-pane -L 数字 ... 左方向にサイズ変更
[Prefix] → :resize-pane -R 数字 ... 右方向にサイズ変更
実行例
[Prefix] → %
[Prefix] → :resize-pane -R 25
設定ファイルの編集
※適切な設定を考え中
$ vi ~/.tmux.conf
【tmux】設定ファイル(.tmux.conf)を編集し、即時反映・適用させる方法 - Qiita
https://qiita.com/chatrate/items/ce09f2aaaba9869f2f7a
達人に学ぶ.tmux.confの基本設定 - Qiita
https://qiita.com/succi0303/items/cb396704493476373edf
■変更内容補足
以下の操作でコピー&ペーストが行える
ただしvim内でvimコマンドでペースト操作すると、あくまでもvimコマンドでコピーしたものが反映される
vim内でペーストする場合、INSERTモードに切り替えてからペーストする
Ctrl+A → [ ... コピーモード
スペース ... コピー開始
エンター ... コピー終了
Ctrl+A → ] ... ペースト
# プレフィックスを「Ctrl+A」に変更
set -g prefix C-a
unbind C-b
# 「R」で設定ファイルをリロードする
bind r source-file ~/.tmux.conf \; display "Reloaded!"
# 「|」でペインを縦に分割
bind | split-window -h
# 「-」でペインを横に分割
bind - split-window -v
# コピーモード
set-window-option -g mode-keys vi
$ tmux source ~/.tmux.conf
メモ
tmuxチートシート - Qiita
https://qiita.com/nmrmsys/items/03f97f5eabec18a3a18b
tmuxを使い始めたので基本的な機能の使い方とかを整理してみた - 完熟トマト
http://kanjuku-tomato.blogspot.jp/2014/02/tmux.html
ターミナルマルチプレクサ tmux をカスタマイズする - Qiita
https://qiita.com/b4b4r07/items/01359e8a3066d1c37edc
vim流tmuxチュートリアル - Qiita
https://qiita.com/sainu__/items/b7e04182e1dd8cb3bbd6
tmux基本まとめ - Qiita
https://qiita.com/ijiest/items/4a42e8543df373babcf2
screen/tmuxのコマンドプレフィックスキーは何がベストか? - Qiita
https://qiita.com/hnw/items/02113da3476f29df768b