tmuxの考え方
セッション・・・複数のウィンドウを持つ固まりウィンドウ・・・複数のペインを持つ1画面
ペイン・・・いわゆる操作できる端末
プレフィックスキー
全てプレフィックスキー(デフォルトはC-b)を押した後に入力する※ $で始まるものはコマンド操作
それ以外はプレフィックスキー後に入力する
セッション操作
hogesessionというセッション名で作成
$ tmux new -s hogesession
セッション選択
:choose-session
セッション一覧を表示
$ tmux ls
hogeセッションにアタッチ
$ tmux a -t hoge
ウィンドウ操作
windowのリネーム,※:set-window-option automatic-rename onにするとデフォルトになる
新しいwindowの作成
c
windowの数字選択指定
0~9
windowの数字を変更
.
ウィンドウを8番へ移動
move-window -t 8
ウィンドウ選択
:choose-window
ウィンドウの入れ替え(1と入れ替える)
swap-window -t 1
ペインpane操作
ペインの入れ替え
{
}
pane番号表示
q
レイアウト変更
SPACE
上下左右サイズ変更
+
-
<
>
ペインの入力同期 on/off
:set-window-option synchronize-panes on
:set-window-option synchronize-panes off
ペインを:1ウィンドウから一枚もらってくる
:join-pane -s :1
ペインを:1ウィンドウに移す
:join-pane -dt :1※:1.3という指定にすればペイン番号3指定
その他操作
コピーバッファの選択
=
コピーバッファを一覧を表示
lsb
コピーバッファの1番をペースト
paste-buffer -b 1
時計表示
t
screenと比べて
- 画面分割の制御が楽(上下左右のリサイズが楽)
- 画面表示が崩れない気がする
- 軽い気がする
- screenに比べて設定ファイルが分かりやすい気がする ※
- ウィンドウの中に画面分割のペインが紐付いているので管理が楽(分割された画面で画面が変わってしまうこちらはウィンドウの分割状態をそのまま保持できるため)
- クラサバ志向なので他人がすでにアタッチしているセッションに参加できる(2人で同じ端末をみれる何気にすごい)
- コピーバッファが何個も持てる
自分の設定
#key
bind s split-window -v
bind v split-window -h
bind j select-pane -D
bind k select-pane -U
bind h select-pane -L
bind l select-pane -R
bind -r < resize-pane -L 1
bind -r > resize-pane -R 1
bind -r - resize-pane -D 1
bind -r + resize-pane -U 1
bind : command-prompt
bind C-i select-pane -t :.+
bind Escape copy-mode
setw -g mode-keys vi
set -g prefix C-a
bind C-a send-prefix
#option
set -g display-time 6000
set -g status-interval 30
set -g mouse-select-pane on
#status line
set -g status-right "#(uptime|cut -d, -f 3 | cut -d: -f 2) %Y/%m/%d (%a) %p %I:%M"
setw -g window-status-format "#I:#W"
setw -g window-status-current-format "#I:#W_#P"
set -g status-bg black
set -g status-fg cyan
set -g status-left-fg black
set -g status-left-bg magenta
set -g status-right-fg black
set -g status-right-bg green
set-window-option -g window-status-current-attr bright,reverse
set-window-option -g window-status-current-bg cyan
set-window-option -g window-status-current-fg black
#window
new -s def -n rss_log "tail.pl /var/log/rss.log"
splitw -h 'cd /var/log ; tailf allevent & tailf samba/log.nmbd &tailf samba/log.smbd & tailf lighttpd/access.log '
neww
参考リンク
日本語manWikiNote