golangの日記

Go言語を中心にプログラミングについてのブログ

tmux のコマンド/ショートカットキーとレイアウトの使い方

defautl-gray.png


tmux は、ターミナルの画面を分割したり、複数のセッションを作成・保持して切り替えることができるコマンドです。
ショートカットキーは vim と同じで操作に慣れが必要ですが、覚えるととても便利です。
また、ファイルに予めレイアウトを作成しておけば、コマンド一発で呼び出せます。


マニュアルページ





目次



セッション(- 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

# 右下のペインでログファイルを表示
send-keys -t 3 'tail -f /var/log/syslog' C-m

以下のコマンドでレイアウトを呼び出すことができます。

$ tmux new-session\; source-file ~/tmux-layouts/quad-layout

後は .bashrc や .bash_aliases に書いておけば $ tmux-quad を実行するだけで呼び出せます。

alias tmux-quad="tmux new-session\; source-file ~/tmux-layouts/quad-layout"