pipipipi.net

pipipipi.net

約5分で読めます

tmux チートシート ~ セッション・ウィンドウ・ペイン操作を体系的に整理 ~

tmux チートシート ~ セッション・ウィンドウ・ペイン操作を体系的に整理 ~

複数のターミナルセッションをひとつの画面で管理できる tmux は、開発や運用作業を効率化する強力なツールです。
操作が多岐にわたるため、キーバインドを都度調べながら使うことも多いので、よく使うようにまとめました。

Ctrl+b(prefix キー)とは

tmux の操作の多くは、まず Ctrl+b を押し、いったん指を離してから、続けてコマンドのキーを押す2段階方式です。この最初に押す Ctrl+b を prefix キー(前置キー)と呼びます。本記事では、わかりやすさのため前置キーを Ctrl+b と表記します。

たとえば新しいウィンドウを作る Ctrl+b c は、「Ctrl+b を押して離してから c を押す」という意味で、同時押しではありません。

Ctrl+b は少し押しにくいため、”~/.tmux.conf” で Ctrl+a などに変更して使う人もいます(その場合は本記事の Ctrl+b を読み替えてください):

set-option -g prefix C-a
unbind-key C-b
bind-key C-a send-prefix

tmuxの構造

tmux は「セッション > ウィンドウ > ペイン」の3階層で構成されています。

  • セッション: 最上位の単位です。ひとつのセッションのなかに複数のウィンドウを作れます。
  • ウィンドウ: セッション内のタブのような単位です。ひとつのウィンドウのなかに複数のペインを作れます。
  • ペイン: ウィンドウを分割した領域です。ひとつの画面に複数の作業領域を並べられます。

基本的な使い方は、セッションにアタッチ(接続)し、ウィンドウを切り替えながら作業を進める流れです。デタッチしてもセッションは存続するため、あとから同じセッションに再接続して作業を再開できます。

コマンドの省略と入力補助

tmux の操作には正式なコマンド名があり、シェルからは “tmux <コマンド>“、セッション接続中は Ctrl+b : で開くコマンドプロンプトから実行します。正式名称は長めですが、他と区別できる文字数まで省略できます。

  • 正式名称: “tmux new-session -s work”
  • 省略形: “tmux new -s work”

ただし単純な先頭一致ではなく、よく使うコマンドには優先される別名があります。たとえば “new-session” と “new-window” はどちらも “new” で始まりますが、“new” と打つと “new-session” が優先されます。“new-window” を縮めたいときは、区別できる “neww” まで打ちます。

コマンド名を忘れたときは、Ctrl+b : のプロンプトでコマンドの先頭を入力して Tab を押すと、それで始まるコマンドの候補を表示・補完してくれます。

以降の表では、まず正式名称(未省略)を示し、よく使う省略形を併記します。

コマンドを実行する2つの場所

tmux の操作は「どこで実行するか」で2種類に分かれます。混同しやすいので、分けて覚えると迷いません。

① シェルから “tmux <コマンド>“(セッションの外側)
セッションの作成・一覧・接続・削除など、セッションそのものを管理する操作です。“tmux ls” や “tmux new-session -d” のように接続中でも実行できるものもありますが、“tmux attach”(接続)だけはセッションの外からしか実行できません。すでに接続中のセッションの中で実行すると入れ子になり、警告が出ます。

② セッション接続中に Ctrl+b(セッションの内側)
ウィンドウの切り替えやペインの分割など、セッションにアタッチしている間だけ行える操作です。

セッション操作

セッションは tmux の最上位単位です。複数のプロジェクトを別セッションで管理し、デタッチしてもプロセスを保持できます。操作は「外側(シェル)」と「内側(Ctrl+b)」に分かれます。

セッションの外側(シェルから “tmux”)

操作正式コマンド省略形
新規セッション作成”tmux new-session -s ""tmux new -s
名前を付けずに作成”tmux new-session""tmux new” / “tmux”
接続せず裏で作成”tmux new-session -d -s ""tmux new -d -s
セッション一覧”tmux list-sessions""tmux ls”
セッションへ接続(アタッチ)“tmux attach-session -t ""tmux attach -t ” / “tmux a -t
セッション削除”tmux kill-session -t

セッション接続中(Ctrl+b)

操作キーバインド
セッション一覧から選択Ctrl+b s
前のセッションへ切替Ctrl+b (
次のセッションへ切替Ctrl+b )
デタッチ(セッションは存続)Ctrl+b d
セッション名変更Ctrl+b $

ウィンドウ操作

セッション内でタブのように複数のウィンドウを開けます。ウィンドウはステータスバーに番号で並びます。ここからはすべてセッション接続中(Ctrl+b)の操作です。

操作キーバインド
新規ウィンドウ作成Ctrl+b c
ウィンドウ一覧から選択Ctrl+b w
次のウィンドウへCtrl+b n
前のウィンドウへCtrl+b p
番号でウィンドウ選択Ctrl+b 0〜Ctrl+b 9
ウィンドウ名変更Ctrl+b ,
ウィンドウを閉じるCtrl+b &

ペイン操作

ウィンドウをさらに分割した領域がペインです。エディタとターミナルを横並びにするなど、ひとつの画面に複数の作業領域を確保できます。

操作キーバインド
左右に分割(垂直分割)Ctrl+b %
上下に分割(水平分割)Ctrl+b “
隣のペインへ移動Ctrl+b ↑↓←→(矢印キー)
ペインを順番に切替Ctrl+b o
ペイン番号を表示(数字キーでジャンプ)Ctrl+b q
直前のペインへ切り替えCtrl+b ;
ペインをズーム(全画面トグル)Ctrl+b z
ペインを閉じるCtrl+b x
レイアウト切替Ctrl+b スペース
ペインを1セルずつリサイズCtrl+b Ctrl+↑↓←→
ペインを5セルずつリサイズCtrl+b Alt+↑↓←→
現ペインと前のペインを入れ替えCtrl+b {
現ペインと次のペインを入れ替えCtrl+b }

コピーモード

スクロールや文字列検索、テキストのコピーはコピーモードで行います。コピーモード内のキーは vi 系と emacs 系の2系統があり、既定は emacs 系です(”~/.tmux.conf” に “set-window-option -g mode-keys vi” を書くと vi 系になります)。

操作vi 系emacs 系(既定)
コピーモード開始Ctrl+b [Ctrl+b [
前方検索/Ctrl+s
後方検索?Ctrl+r
次の検索結果nn
前の検索結果NN
選択開始SpaceCtrl+Space
選択してコピーEnterAlt+w(Ctrl+w も可)
コピーモード終了qq または Esc
貼り付けCtrl+b ]Ctrl+b ]

emacs 系の場合のコピーの基本的な流れは次のとおりです。

  1. Ctrl+b [ でコピーモードに入る
  2. 矢印キーや検索(Ctrl+s / Ctrl+r)で選択の始点へ移動する
  3. Ctrl+Space で選択を開始し、カーソル移動で範囲を広げる
  4. Alt+w でコピーする(このとき自動的にコピーモードを抜けます)
  5. Ctrl+b ] で貼り付ける

途中でやめるときは q または Esc でコピーモードを抜けます。Ctrl+b ] はコピーモードの外で貼り付けに使うキーで、コピーモードを閉じるキーではありません。

emacs 系の検索(Ctrl+s / Ctrl+r)はインクリメンタル検索で、入力しながら絞り込めます。Alt+w は端末によっては Esc を押してから w でも代用できます。

vi 系キーバインドを有効にするには ”~/.tmux.conf” に以下を追加します:

set-window-option -g mode-keys vi

設定・その他

操作キーバインド / コマンド
設定ファイルをリロードCtrl+b :source-file ~/.tmux.conf
すべてのセッションを終了Ctrl+b :kill-server
キーバインド一覧を表示Ctrl+b ?

マウス操作

マウスサポートを有効にすると、クリックでペインを選択したり、境界をドラッグしてリサイズしたりできます。

有効化の方法

方法コマンド
設定ファイルで永続設定”~/.tmux.conf” に “set -g mouse on” を追記
セッション中に一時的に有効化(再起動で元に戻る)Ctrl+b :set mouse on

マウスで行える操作(“mouse on” 時)

操作方法
ペインを選択クリック
ペインをリサイズ境界線をドラッグ
ウィンドウを切替ステータスバーのウィンドウ名をクリック
スクロールバックを閲覧ホイールスクロール

マウスでのテキストコピー

マウスで選択すると、システムのクリップボードにコピーされます。コピーされない場合は “set-clipboard on” などの設定が必要なことがあります。

右クリックメニュー(tmux 3.0 以降)

tmux 3.0 以降では、マウスモードが有効な状態で右クリックするとコンテキストメニュー(“display-menu”)が開きます。クリックした位置によってメニューの内容が異なります:

クリック位置メニューの内容
ペイン内検索・コピー・分割・スワップ・ズームなど
ステータスバー(ウィンドウ名)ウィンドウの操作(スワップ・削除・リネーム等)
ステータスバー左端セッションの操作(切替・リネーム等)

キーバインドの覚え方

Ctrl+b [ で取り込み、Ctrl+b ] で取り出す

コピーモードは [ で開始し、コピーした内容は ] で貼り付けます。] はコピーモードを閉じるキーではなく貼り付けキーですが(コピーモードを抜けるのは q / Esc、またはコピー操作)、開き括弧と閉じ括弧が対になっているので「[ で取り込み、] で取り出す」とセットで覚えると迷いません。

ペイン分割は Ctrl+b % が左右、Ctrl+b ” が上下

Ctrl+b % で左右に分割(垂直分割)、Ctrl+b ” で上下に分割(水平分割)します。

PDF版のダウンロード

このチートシートのPDF版(A4・印刷向け)を無料でダウンロードできます。 手元に置いておくと、ターミナル作業中にすぐ参照できます。

PDFを無料ダウンロード(A4・印刷向け)

関連記事


キーバインドは tmux 3.x(“man tmux”)を基に確認。

関連記事