tmuxとは
ターミナルマルチプレクサとか呼ばれているターミナルの仮想化とかするやつ
これ以外表現する方法がない。超便利
configファイルは.tmux.conf
セッション、ウィンドウ、ペイン
session > window > paneで覚えとけばいいと思うよ。
session
...tmuxの接続先
window
...session内でのタブみたいなもん
pane
...window内での作業できるスペースの単位、paneを分割することで一つのターミナルでも複数画面みたいなことができる
tmux操作の基本 prefixについて
tmuxは基本(prefix) + (別のキー)で操作する。
デフォルトのprefixは< Ctrl-b >となっている。
prefixは頻繁に打つことになるのだが、bがちょっと打ちづらいのでtmux使いは良くprefixのキーバインドを変更している。
# bind Ctrl-j to prefix
set -g prefix C-j
# unbind default prefix
unbind C-b
# press Ctrl-j*2 to send-prefix
bind C-j send-prefix
何のキーprefixにするかはその人次第だと思うが、vimの操作とかとエディターの操作のキーとかと被らないようにするのが理想。
キー操作基本
< Prefix > + ? キーバインド一覧
< Prefix > + : コマンドプロンプト
< Prefix > + [ コピーモード
セッション操作
# 新規セッション作成
tmux
tmux new -s (session名)
# アタッチ
tmux a
tmux a -t (session名)
# デタッチ
< Prefix > + d
# セッション名変更
tmux rename -t (旧session名) (新session名)
< Prefix > + $
# セッションの削除
tmux kill-session
tmux kill-session -t (session名)
tmux kill-server # 全部kill
# セッションの一覧選択
< Prefix > + s
ウインドウ操作
c 新規ウインドウ作成
w ウインドウの一覧選択
0-9 指定番号のウインドウへ移動
& ウインドウの破棄
n 次のウインドウへ移動
p 前のウインドウへ移動
l 以前のウインドウへ移動
' 入力番号のウインドウへ移動
. 入力番号にウインドウ番号を変更
, ウインドウの名前変更
f ウインドウの検索
ペイン操作
% 左右にペイン分割
" 上下にペイン分割
q ペイン番号を表示
カーソル 指定方向のペインへ移動 ※連続押しでプレフィックス継続
Ctrl-カーソル ペインのサイズを変更 ※連続押しでプレフィックス継続
! ペインを解除してウインドウ化
x ペインの破棄
o ペインを順に移動
; 以前のペインへ移動
z 現在のペインを最大化/復帰
スペース レイアウトを変更
Alt-1-5 レイウトを変更
{ ペインの入れ替え(前方向)
} ペインの入れ替え(後方向)
ctrl+o ペインの入れ替え(全体)
t ペインに時計を表示
コマンドモード
< Prefix > + :でtmux sessionの中でtmuxのコマンドが打てる
これを使わない場合にはCtrl-zでtmuxをサスペンドしてコマンドを打つことになる。
しかしだいたいキー操作でなんとかする感じなのであまり使わないかも
copy mode
< Prefix > + [ でcopy modeに入る
copy modeではviのnormal modeみたいな感じでjkとかで画面スクロールできる。
またvi同様v,Vでvisual modeで選択範囲をコピーできる。
viと違う点は< C-v >で矩形選択できる訳ではなく、vの挙動を通常か矩形選択か切り替えることができるということ
reattach-to-user-namespaceを使用すると、システムクリップボードと連携することが可能
setw -g mode-keys vi
bind-key -t vi-copy v begin-selection
bind-key -t vi-copy V select-line
bind-key -t vi-copy C-v rectangle-toggle
bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"
bind-key -t vi-copy Escape clear-selection
bind-key -t vi-copy C-n page-up
bind-key -t vi-copy C-f page-down
bind-key -t vi-copy C-u scroll-up
bind-key -t vi-copy C-d scroll-down
vi-copyはversion2.2くらいまでで2.3以降はcopy-mode-viと変更があるので注意
その他
後は.tmux.confでのカスタマイズくらいかな
画面上のステータスバーとかペインの境界のハイライトとか色々あるけどそれは時間ができたら