tmuxのチートシート
わたしのメモシステムからフィルターで取り出したもの
#使い方vv
#tmuxでtmuxのバッファをxselのクリップボードへコピーする方法vv
tmux show-buffer|xsel -ip (vimのregでは、*に格納される)
tmux show-buffer|xsel -ib (vimのregでは、+に格納される)
tmux show-buffer|pbcopy
--- 2021-05-11 15:58:33 +0900 ---
#使い方vv
#tmuxでペインを他のウインドウに移動する方法vv
別ウィンドウのペインを持ってくる
:join-pane -s [windowインデックス].[paneインデックス]
別ウィンドウにペインを移動する
:join-pane -t [windowインデックス]
--- 2022-06-11 20:17:23 +0900 ---
#使い方vv
#tmuxでクリップボードの内容をバッファに登録する方法vv
tmux set-buffer "$(xsel -ob)"
--- 2022-08-06 18:00:13 +0900 ---
#使い方vv
#tmuxでバッファリストを表示する方法vv
tmux list-buffer|sed -e's/^buffer.*bytes: //g' -ne'1,$p'
--- 2022-08-28 18:01:31 +0900 ---
#使い方vv
#tmuxでバッファリストの最初を表示するshow-bufferは改行がないので、xargsを使うと改行をつけられるvv
tmux show-buffer|xargs
--- 2022-08-28 18:02:01 +0900 ---
#使い方vv
#tmuxでペイン分割サイズを均等にする方法vv
select-layout even-horizontal #縦
select-layout even-vertical #横
--- 2022-08-29 12:48:16 +0900 ---
#使い方vv
#tmuxでコマンド、ショートカットキーとレイアウトの使い方vv
https://man.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man1/tmux.1
セッション(- session)
セッションの開始
$ tmux
$ tmux new
$ tmux new-session
セッションに名前をつけて起動
tmux new -s [セッション名]
$ tmux new -s dev
セッションの名前変更
tmux rename -t [変更前セッション名] [変更後セッション名]
$ tmux rename-session -t 0 dev
$ tmux rename -t 0 dev
現在起動中のセッションを確認
$ tmux ls
$ tmux list-session
セッションに接続されているクライアントを確認
$ tmux lsc
$ tmux list-client
セッションをデタッチ(キー)
Ctrl+b + d
Ctrl+b + : detach-client
セッションのアタッチ
接続したいセッションを指定(指定しなければ最後のセッションにアタッチされる) セッション番号は tmux list-session で確認できる
$ tmux a
$ tmux attach
$ tmux attach -t 0
セッション名の変更(以下は、セッション 0 の名前を dev に変更)
$ tmux rename-session -t 0 dev
$ tmux rename -t 0 dev
セッションの削除
セッションを指定しない場合は、直前にアタッチしていたセッションが削除される
$ tmux kill-session
$ tmux kill-session -t 1
全てのセッションの削除
$ tmux kill-server
ウィンドウ(- window)
新規ウィンドウ
Ctrl+b + c
Ctrl+b + : new-window
ウィンドウの切り替え
Ctrl+b + ウィンドウ番号
上の番号のウィンドウへ切り替え
Ctrl+b + n
下の番号のウィンドウへ切り替え
Ctrl+b + p
最後に操作したウィンドウへ移動
Ctrl+b + l
ウィンドウ一覧表示
Ctrl+b + w
ウィンドウ名を変更
Ctrl+b + ,
ウィンドウの削除
Ctrl+b + &
ウィンドウの終了(ターミナルを閉じるときと同じです)
$ exit
ペイン(- pane)
水平分割
Ctrl+b + "
垂直分割
Ctrl+b + %
分割解除(ペインをウィンドウ化する)
Ctrl+b + !
ペインの終了
Ctrl+b + x
ペインの配置変更(順番に配置を変更(提案)してくれる)
Ctrl+b + SPACE
Ctrl+b + Shift + SPACE
ペイン間の移動
次のペインに移動
Ctrl+b + o
ペインのインジケーター番号を表示
Ctrl+b + q + 番号
ペインの入れ替え
上のペイントと入れ替え
Ctrl+b + {
下のペイントと入れ替え
Ctrl+b + }
ペインの縦横の幅を調整
上
Ctrl+b + k
下
Ctrl+b + j
左
Ctrl+b + h
右
Ctrl+b + l
コピー(- copy)
クリップボードにコピーするには以下のように設定ファイル(.tmux.conf)に書いておきます。
(xsel をインストールしている必要がある) bind-key -T copy-mode-vi Enter
send-keys -X copy-pipe-and-cancel "cat | tr -d '\r' | tr -d '\n' | xsel -i --clipboard"
コピーモードの開始
Ctrl+b [
コピーの始点を選択
SPACE
コピーの終点を選択
ENTER
クリップボードへの書き出し
Ctrl+b + >
貼り付け(コピーモードの終了)
Ctrl+b + ]
レイアウト(- layout)
ファイルの記述方法は、ショートカットキーでレイアウトを作成する手順のように、順番にコマンドを書いていきます。
以下ファイルで使えるコマンド現在のウィンドウの名前を変更
rename-window -t 0 dev
新しいウィンドウを作って名前を変更
new-window -n dev
ウィンドウを横に分割
splitw -d
ウィンドウを縦に分割
splitw -h -d
ペイン間の移動
上に移動
select-pane -U
下に移動
select-pane -D
左に移動
select-pane -L
右に移動
select-pane -R
ペインのリサイズ
上方向にサイズを増やす
resize-pane -U
下方向にサイズを増やす
resize-pane -D
左方向にサイズを増やす
resize-pane -L
右方向にサイズを増やす
resize-pane -R
以下のように数値を渡すことでリサイズできます
resize-pane -U 7
コマンドの実行 (tmux send-keys -t [ウィンドウ名] [コマンド] C-m) レイアウトの起動時に
tail -f でログファイルを開きたい場合は以下のように記述します。
send-keys -t name 'tail -f ~/log/file.log' C-m
レイアウトファイルの書き方
適当な場所に 適当なファイルを作成します。
$ mkdir ~/tmux-layouts && cd $_
$ vim quad-layout
作成したファイル(~/tmux-layouts/quad-layout) に以下を記述します。( # はコメントとして使えます)
@#ウィンドウ名をつける(省略可能)#@
rename-window -t 0 main
@#横に分割(これで上と下の2つに分割された状態)#@
splitw -d
@#上のペインを縦に分割(3つに分割された状態)#@
splitw -h -d
@#下のペインに移動#@
select-pane -D
@#下のペインを縦に分割(これで4分割)#@
splitw -h -d
@#右上のペインで top コマンドを実行#@
send-keys -t 1 'top' C-m
以下簡単に
Ctrl+b + ? キーバインド一覧
Ctrl+b + s セッションの一覧表示
Ctrl+b + c 新規ウィンドウ作成
Ctrl+b + w ウィンドウの一覧
Ctrl+b + & ウインドウの破棄
Ctrl+b + n 次のウインドウへ移動
Ctrl+b + p 前のウインドウへ移動
Ctrl+b + % 左右にペイン分割
Ctrl+b + " 上下にペイン分割
Ctrl+b + h 左のペインに移動
Ctrl+b + j 下のペインに移動
Ctrl+b + k 上のペインに移動
Ctrl+b + l 右のペインに移動
Ctrl+b + H ペインを左にリサイズ
Ctrl+b + J ペインを下にリサイズ
Ctrl+b + K ペインを上にリサイズ
Ctrl+b + L ペインを右にリサイズ
Ctrl+b + x ペインの破棄
Ctrl+b + Space ペインのレイアウト変更
Ctrl+b + Ctrl+o ペインの入れ替え
Ctrl+b + { ペインの入れ替え(順方向)
Ctrl+b + } ペインの入れ替え(逆方向)
Ctrl+b + [ コピーモードの開始(カーソルキーで移動)
Ctrl+b + v コピー開始位置決定(viモード)
Ctrl+b + y コピー終了位置決定(viモード)
Ctrl+b + p コピー内容の貼り付け
--- 2023-01-09 18:32:49 +0900 ---
#使い方vv
#tmuxでペインを入れ替える方法vv
Ctrl+b + Space ペインのレイアウト変更
Ctrl+b + Ctrl+o ペインの入れ替え
Ctrl+b + { ペインの入れ替え(順方向)
Ctrl+b + } ペインの入れ替え(逆方向)
--- 2023-01-10 22:48:03 +0900 ---
#使い方vv
#tmuxでペインの表示内容をクリップボードにコピーする方法vv
tmux capture-pane -pS -|xsel -ib
オプションの意味:p:標準出力へ S:start -:end
--- 2023-01-27 16:36:02 +0900 ---
#使い方vv
#tmuxでpopupを表示する設定vv
@#Option+downでpopup_floatingwindowを開く設定#@
bind -n M-down popup -xC -yC -w85% -h90% -d '#{pane_current_path}' -E 'tmux a -t flwin || tmux new -s flwin'
--- 2023-12-20 10:36:52 +0900 ---
#使い方vv
#tmuxでリモートPCにある番組を見れるようにする方法vv
start:
$ tmux splitw -v\; splitw -h\; resize-pane -U -t0 20\; selectp -t0\; send-keys 'ssh -L 15618:localhost:5691 -L 2952:localhost:29 XX@XXX.XXX.XXX.XXX #sshトンネル__' C-m\; selectp -t1\; send-keys 'sleep 2 && gio mount -a sftp://localhost:2952' C-m
:new-window\; splitw -v\; splitw -h\; selectp -t0\; send-keys 'ssh -L 15618:localhost:5691 -L 2952:localhost:29 XX@XXX.XXX.XXX.XXX #sshトンネル__' C-m\; selectp -t1\; send-keys 'sleep 2 && gio mount -a sftp://localhost:2952' C-m
:end
$ tmux selectp -t1\; send-keys 'gio mount -u sftp://localhost:2952' C-m\; selectp -t0\; send-keys 'exit' C-m
:selectp -t1\; send-keys 'gio mount -u sftp://localhost:2952' C-m\; selectp -t0\; send-keys 'exit' C-m
--- 2024-06-05 21:16:58 +0900 ---
