Skip to content

Latest commit

 

History

History
1343 lines (1055 loc) · 67.2 KB

tmux-ja.rst

File metadata and controls

1343 lines (1055 loc) · 67.2 KB

TMUX

名前

tmux ― 端末多重化 (terminal multiplexer)

書式

tmux [-28dlqUuv] [-f file] [-L socket-name] [-S socket-path] [command [flags]]

説明

tmux は端末を多重化し、 1 つのスクリーンから複数の端末を作成、アクセス、制御することを可能にします。 tmux をスクリーンからデタッチしバックグランドで動作させておいて、 その後再度アタッチすることができます。

tmux は起動されると 1 つのウィンドウを持つ新しい セッションを作成しスクリーンに表示します。 スクリーンの一番下にあるステータスラインはカレントセッションの情報を表示し、 対話型コマンドの入力に使用されます。

セッションとは tmux に管理される疑似端末の集合の 1 つです。 各セッションはリンクする 1 つ以上のウィンドウを持ちます。 ウィンドウはスクリーン全体を占有し、 各々が独立した疑似端末である複数の矩形ペインへ分割することができます (疑似端末の技術的な詳細は pty(4) マニュアルページドキュメント)。 tmux のインスタンスはいくつでも同じセッションに接続することができ、 ウィンドウはいくつでも同じセッションに作成しておくことができます。 全セッションが kill されたときに tmux は終了します。

各セッションは持続的で、(ssh(1) のコネクションタイムアウトのような) 予期しない切断や ('C-b d' キーストロークによる) 意図的なデタッチがあっても存続します。 tmux に再アタッチするには以下のようにします:

$ tmux attach

tmux ではセッションはクライアント側のスクリーンに表示され、 全セッションは 1 つのサーバーで管理されます。 サーバーと各クライアントは /tmp のソケットを通して通信する独立したプロセスです。

オプションは以下の通りです:

-2 tmux に端末が 256 色をサポートすると強制的に見なします。
-8 -2 と同様に 88 色を指示します。
-d tmux にデフォルトの色数をサポートすると強制的に見なします。
-f file

別の設定ファイルを指定します。 デフォルトでは tmux はシステムの設定ファイルを /etc/tmux.conf から読み込みます。存在するなら、 ユーザーの設定ファイルを ~/.tmux.conf から読み込みます。 設定ファイルはサーバーが最初に起動されたときに順に実行される tmux コマンドの集合です。

設定ファイル中のコマンドが失敗した場合、 tmux はエラーを報告し以降のコマンドを実行せずに終了します。

-l ログインシェルとして振る舞います。このフラグに効果は無く、 tmux をログインシェルとして利用するときの、 他のシェルとの互換性のために存在しています。
-L socket-name

tmux はサーバーソケットを /tmp 以下のディレクトリに格納し、デフォルトのソケットは default と名付けられます。 このオプションで違うソケット名を指定でき、いくつかの独立した tmux サーバーを実行することができます。 -S とは違いフルパスは必要なく、 全てのソケットは同じディレクトリ内に作成されます。

ソケットが誤って削除された場合、再作成するよう tmux サーバーに SIGUSR1 シグナルが送信されます。

-q サーバーが様々な情報メッセージ (例えばウィンドウフラグが変更されたとき) を送るのを防ぎます。
-S socket-path サーバーソケットの別のフルパスを指定します。 -S が指定された場合、 デフォルトのソケット用ディレクトリは使われず、 -L フラグは無視されます。
-U サーバーをアンロックします。
-u

tmux は環境変数 LC_ALL, LC_CTYPE, LANG の先頭に文字列 "UTF-8" が設定されているか調べることで、 UTF-8 サポートの有無を推測します。 これは常にうまくいくとは限らないので、 -u フラグを使って UTF-8 がサポートされていることを tmux に明確に伝えます。

サーバーがクライアントから -u を渡されたり UTF-8 を検出した環境で起動された場合、 utf8 及び status-utf8 オプションがグローバルウィンドウとセッションオプションでそれぞれ有効になります。

-v 冗長なロギングを要求します。 このオプションを複数回指定することで冗長度を上げることができます。 ログメッセージはカレントディレクトリの tmux-client-PID.log 及び tmux-server-PID.log ファイルに保存され、 PID はサーバーまたはクライアントの PID になります。
command [flags]
後の節で説明する、 tmux を制御するためのコマンド集合を 1 つ指定します。 コマンドが 1 つも指定されなかった場合、 new-session コマンドが指定されたものとします。

キーバインド

アタッチしたクライアントから tmux をデフォルトでは 'C-b (Ctrl-b)' のプレフィックスキーと、 それに続くコマンドキーの組み合わせで制御することができます。

デフォルトのキーバインドのいくつか:

c 新しいウィンドウを作成。
d カレントクライアントをデタッチ。
l 直前に選択されていたウィンドウに移動。
n 次のウィンドウに切り替え。
p 前のウィンドウに切り替え。
& カレントウィンドウをkill。
, カレントウィンドウをリネーム。
? 全キーバインドを列挙。

完全なリストは (デフォルトでは '?' に割り当てられている) list-keys コマンドで得られます。 キーバインドは bind-key 及び unbind-key コマンドで変更できます。

コマンド

この節は tmux でサポートされるコマンドのリストを含みます。 ほとんどのコマンドは target-client, target-session, target-window, target-pane のどれかひとつを持つ -t 引数を受け付けます。 これらはコマンドを作用させるクライアント、セッション、ウィンドウ、 ペインを指定します。 target-client はクライアントが接続された pty(4) ファイル名で、例えば /dev/ttyp1 か、 /dev/ttyp1 にアタッチされた ttyp1 のいずれかです。 クライアントが指定されなかった場合、可能ならカレントクライアントが選ばれ、 そうでなければエラーが報告されます。 クライアントは list-clients コマンドで列挙することができます。

target-session は (list-sessions コマンドで列挙される) セッション名か、 target-client と同じ書式のクライアント名で、 この場合アタッチされているセッションになります。セッション名を探すとき、 tmux は始めに完全なマッチを探し、見つからなければ target-session が先頭で一致するものか、 fnmatch(3) パターンでマッチするものを調べます。マッチが 1 つだけ見つかった場合、 それが対象セッションになり、マッチが複数の場合はエラーになります。 セッションが省略された場合、可能ならカレントセッションが利用され、 カレントセッションが利用できなければ一番最後に作られたものが選ばれます。

target-windowsession:window という形式でウィンドウを指定します。 sessiontarget-session と同じルールに従い、 window は mysession:1 のようなウィンドウ番号、 mysession:mywindow のような完全なウィンドウ名、 mysession:mywin* や mysession:mywin のような fnmatch(3) パターンやウィンドウ名の先頭として、順に検索されます。 空のウィンドウ名は (new-windowlink-window コマンドのように) 適切なら次の使われていない番号になり、 そうでなければセッションのカレントウィンドウが選ばれます。 引数がコロンを含んでいなければ tmux はまずウィンドウとして解析してみて、 それが失敗した場合、セッションにマッチしないか試みます。

target-panetarget-window と同じような形式を取りますが、 mysession:mywindow.1 のようなピリオドに続くペイン番号の追加オプションがあるところが違います。 ペイン番号が省略された場合、 指定されたウィンドウのそのときアクティブなペインが使われます。 コロンもピリオドもなければ、 tmux はまずペイン番号として引数を使おうとします。それが失敗した場合、 target-window として検索します。

複合コマンドはコマンド列の一部として合わせて指定することができます。 各コマンドはスペースとセミコロンで分離され、 コマンドは左から右へ続けて実行されます。 (例えばコマンド列を bind-key で指定する場合などで) リテラルのセミコロンはバックスラッシュでエスケープすることで含めることができます。

例を挙げると:

refresh-client -t/dev/ttyp2

rename-session -tfirst newname

set-window-option -t:0 monitor-activity on

new-window ; split-window -d

bind-key D detach-client \; lock-server

クライアントとセッション

以下のコマンドが利用できます:

attach-session [-d] [-t target-session]

(別名: attach) tmux の外部で実行した場合、現在の端末の中で新しいクライアントを作成し、 target-session にアタッチします。内部で実行した場合、 カレントクライアントに切り替えます。 -d が指定された場合、 このセッションにアタッチしている他のクライアントはデタッチされます。

サーバーが起動していなければ attach-session はサーバーを起動しようとし、 セッションが設定ファイル中で作成されなければ失敗します。

detach-client [-t target-client]
(別名: detach) キーバインドからならカレントクライアントを、 または -t で指定されたクライアントをデタッチします。
has-session [-t target-session]
(別名: has) 指定したセッションが存在しなければエラーを報告し 1 で終了します。 存在すれば 0 で終了します。
kill-server
tmux サーバーとクライアントを kill し全セッションを破棄します。
kill-session [-t target-session]
与えられたセッションを破棄し、 このセッションにだけリンクしているウィンドウを閉じ、 アタッチしている全クライアントをデタッチします。
list-clients
(別名: lsc) サーバーにアタッチしている全クライアントを列挙します。
list-commands
(別名: lscm) tmux でサポートしている全コマンドの書式を列挙します。
list-sessions
(別名: ls) サーバーで管理されている全セッションを列挙します。
new-session [-d] [-n window-name] [-s session-name] [command]

(別名: new) session-name という名前で新しいセッションを作成します。 -d が与えられなければ、新しいセッションは現在の端末にアタッチされます。 window-name は初期ウィンドウの名前で、 command はそこで実行されるコマンドです。

ターミナルから実行された場合、 termios(4) の特殊文字は保存され、 新しいセッションの新しいウィンドウで使われます。

refresh-client [-t target-client]
(別名: refresh) キーバインドからならカレントクライアントを、 または -t で指定された 1 つのクライアントを更新します。
rename-session [-t target-session] new-name
(別名: rename) セッションを new-name へリネームします。
source-file path
(別名: source) path からコマンドを実行します。
start-server
(別名: start) 既に起動されいなければ、セッションを作成せずに tmux サーバーを起動します。
suspend-client [-c target-client]
(別名: suspendc) SIGTSTP (tty stop) を送信してクライアントをサスペンドします。.
switch-client [-c target-client] [-t target-session]
(別名: switchc) クライアント target-client のカレントセッションを target-session に切り替えます。

ウィンドウとペイン

tmux ウィンドウは、いくつかあるモードのいずれかになっています。 デフォルトではウィンドウにアタッチされた端末に直接アクセスできます。 他は以下の通りです:

出力モード
list-keys のような出力を発生するコマンドが キーバインドから実行されたときにこのモードに入ります。
スクロールモード
(デフォルトで '=' に割り当てられている) scroll-mode コマンドでこのモードに入り、 ウィンドウ履歴バッファの閲覧ができます。
コピーモード
このモードではウィンドウやその履歴の一部を、 後で別のウィンドウへ挿入するためにペーストバッファへコピーすることができます。 デフォルトで '[' に割り当てられている copy-mode でこのモードに入ります。

利用可能なキーは emacs モードまたは vi モード (mode-keys オプションを参照) のどちらが選択されているかに依存します。 モードに適合するように以下のキーがサポートされています:

Function vi emacs
インデント位置 ^ M-m
選択範囲解除 Escape C-g
選択範囲コピー Enter M-w
カーソル下 j Down
カーソル左 h Left
カーソル右 l Right
カーソル上 k Up
行全体削除 d C-u
行末尾まで削除 D C-k
行末尾 $ C-e
行番号移動 g g
次ページ C-f Page down
次単語 w M-f
バッファ貼り付け p C-y
前ページ C-u Page up
前単語 b M-b
モード終了 q Escape
検索繰り返し n n
後方検索 ? C-r
前方検索 / C-s
行先頭 0 C-a
選択範囲開始 Space C-Space
Transpose chars   C-t

これらのキーバインドは名前付けられたテーブル集合で定義されています。 vi-edit 及び emacs-edit はコマンドプロンプトで行編集するときに使われるキーで、 vi-choice 及び emacs-choice は (window-choice コマンドで発生するような) リストから選択するときや出力モードで使われるキーで、 vi-copy 及び emacs-copy はコピーモードとスクロールモードで使われるキーです。 このテーブルは list-keys コマンドで観ることができ、 bind-key 及び unbind-key コマンドでキーを変更したり削除したりできます。

バッファ貼り付けキーはスタックの先頭のペーストバッファから最初の行を貼り付けます。

モードのコマンドは以下の通りです:

copy-mode [-u] [-t target-pane]
コピーモードに入ります。 -u オプションは 1 ページ上にスクロールします。
scroll-mode [-u] [-t target-pane]
スクロールモードに入ります。 -ucopy-mode と同様です。

tmux で表示される各ウィンドウは 1 つ以上のペインに分割することができ、 各ペインはディスプレイの領域をいくぶんか占有し、それぞれ独立した端末です。 ウィンドウは split-window コマンドで複数のペインに分割することができます。 ウィンドウは(-h フラグで) 水平または垂直に分割できます [1] 。 ペインは (デフォルトでは 'C-up', 'C-down', 'C-left', 'C-right' に割り当てられている) resize-pane コマンドでリサイズでき、カレントペインは up-pane 及び down-pane コマンドで切り替えられ、 rotate-window 及び swap-pane コマンドで位置を変更することなくペインを入れ替えることができます。 ペインには番号が作成順に 0 から割り振られます。

レイアウトのプリセットがいくつか利用できます。 select-layout コマンドで選択したり、 (デフォルトでは 'C-Space' に割り当てられている) next-layout コマンドで循環したりでき、 レイアウトが選択されれば関連するペインは基本状態へ移動・リサイズされます。

以下のレイアウトがサポートされています:

even-horizontal
ウィンドウ全体で均等に左から右へペインを並べます。
even-vertical
均等に上から下へペインを並べます。
main-horizontal
大きい(主)ペインをウィンドウ上方に表示し、 残りのペインを下方の余りスペースで左から右へ並べます。 上のペインの高さを指定するには main-pane-height ウィンドウオプションを利用してください。
main-vertical
大きいペインを左に配置し他を右側で上から下へ並べる点以外は main-horizontal と同様です。 main-pane-width ウィンドウオプションを参照してください。

ウィンドウとペインに関するコマンドは以下の通りです:

break-pane [-d] [-t target-pane]
(別名: breakp) target-pane をそれを含んでいるウィンドウから切り離し 新しいウィンドウで単独のペインにします。 -d が与えられた場合、 新しいウィンドウはカレントウィンドウにはなりません。
choose-client [-t target-window] [template]
ウィンドウをクライアント選択モードにし、 クライアントをリストから対話的に選択できるようにします。 クライアントが選択された後、 template の '%%' をクライアントの pty(4) パスで置き換えた結果をコマンドとして実行します。 template が与えられなければ "detach-client -t '%%'" が使われます。 このコマンドは tmux 内部でのみ動作します。
choose-session [-t target-window] [template]
ウィンドウをセッション選択モードにし、 セッションをリストから対話的に選択できるようにします。 セッションが選択された後、 template の '%%' をセッション名で置き換えた結果をコマンドとして実行します。 template が与えられなければ "switch-client -t '%%'" が使われます。 このコマンドは tmux 内部でのみ動作します。
choose-window [-t target-window] [template]
ウィンドウをウィンドウ選択モードにし、 ウィンドウをリストから対話的に選択できるようにします。 ウィンドウが選択された後、 template の '%%' をセッション名とウィンドウ番号で置き換えた結果をコマンドとして実行します。 template が与えられなければ "select-window -t '%%'" が使われます。 このコマンドは tmux 内部でのみ動作します。
display-panes [-t target-client]
(別名: displayp) target-client で表示されている各ペインにインジケータを表示します。 display-panes-time 及び display-panes-colour セッションオプションを参照してください。 インジケータがスクリーン上にある間、ペインを '0' から '9' キーで選択することができます。
down-pane [-t target-pane]
(別名: downp) 下のペインへ移動します。
find-window [-t target-window] match-string
(別名: findw) fnmatch(3) パターンの match-string でウィンドウ名、タイトル、表示されている内容 (履歴は除く) から検索します。ウィンドウが 1 つだけマッチした場合、それが自動的に選択され、 そうでなければ選択リストが表示されます。 このコマンドは tmux 内部でのみ動作します。
kill-pane [-t target-pane]
(別名: killp) 与えられたペインを破棄します。 それが含まれていたウィンドウにペインが残っていない場合、 そのウィンドウも破棄されます。
kill-window [-t target-window]
(別名: killw) カレントウィンドウまたは target-window のウィンドウを kill します。 リンクしているセッションからそれを取り除きます。
last-window [-t target-session]
(別名: last) 最後の (直前に選択されていた) ウィンドウを選択します。 target-session が指定されなかった場合、 カレントセッションの最後のウィンドウを選択します。
link-window [-dk] [-s src-window] [-t dst-window]
(別名: linkw) src-window のウィンドウを指定された dst-window へリンクします。 dst-window が指定されそのようなウィンドウが存在しない場合、 src-window はそこへリンクされます。 -k が与えられ dst-window が存在する場合、それは kill されます。 そうでなければエラーになります。 -d が与えられた場合、 新しくリンクされたウィンドウは選択されません。
list-windows [-t target-session]
(別名: lsw) カレントセッションまたは target-session のウィンドウを列挙します。
move-window [-d] [-s src-window] [-t dst-window]
(別名: movew) src-window のウィンドウが dst-window へ移動される点以外は link-window と同様です。
new-window [-dk] [-n window-name] [-t target-window] [command]

(別名: neww) 新しいウィンドウを作成します。 -d が与えられた場合、 セッションは新しいウィンドウをカレントウィンドウにはしません。 target-window は作成されるウィンドウを表現し、 対象が既に存在している場合、それを破棄する -k フラグが使われていない限りはエラーが表示されます。 command は実行するコマンドです。 command が指定されなければ、デフォルトコマンドが使われます。

tmux 内部で実行される全てのプログラムでは、 環境変数 TERM に 'screen' が設定されていなければなりません。 新しいウィンドウは環境に "TERM=screen" を自動的に追加しますが、 シェルのスタートアップファイルでこれをリセットしないよう注意してください。

next-layout [-t target-window]
(別名: nextl) ウィンドウを次のレイアウトにし、ペインを再配置して合わせます。
next-window [-a] [-t target-session]
(別名: next) セッションの次のウィンドウへ移動します。 -a が使われた場合、 次のウィンドウへの移動時にベル、動作、アラートを発生させます。
previous-window [-a] [-t target-session]
(別名: prev) セッションの前のウィンドウへ移動します。 -a が使われた場合、 前のウィンドウへの移動時にベル、動作、アラートを発生させます。
rename-window [-t target-window] new-name
(別名: renamew) カレントウィンドウまたは指定されているなら target-window のウィンドウを new-name へリネームします。
resize-pane [-DLRU] [-t target-pane] [adjustment]
(別名: resizep) ペインを -U なら上へ (デフォルト)、 -D なら下へ、 -L なら左へ、-R なら右へリサイズします。 adjustment は行数かセル数で与えます (デフォルトは1)。
respawn-window [-k] [-t target-window] [command]
(別名: respawnw) コマンドが終了しているウィンドウを再度アクティブにします (remain-on-exit ウィンドウオプションを参照)。 command が与えられなければ、 ウィンドウが作成されたときのコマンドが実行されます。 ウィンドウは、動作中のコマンドを kill する -k が与えられていない限り、 非アクティブになっていなければなりません。
rotate-window [-DU] [-t target-window]
(別名: rotatew) ウィンドウ内のペインの位置を、 -U で上へ (数的に低い方へ)、または下へ (数的に高い方へ) 回転します。
select-layout [-t target-window] [layout-name]
(別名: selectl) ウィンドウの特定のレイアウトを選びます。 layout-name が与えられなければ、 最後に使われたレイアウトが (あれば) 再度適用されます。
select-pane [-t target-pane]
(別名: selectp) ペイン target-pane をウィンドウ target-window でアクティブにします。
select-window [-t target-window]
(別名: selectw) target-window のウィンドウを選択します。
split-window [-dhv] [-l size | -p percentage] [-t target-window] [command]
(別名: splitw) アクティブペインを分割して新しいペインを作成します。 -h で水平分割、 -v で垂直分割、 どちらも指定されなければ -v になります [1]-l, -p オプションでは新しいウィンドウのサイズを (垂直分割なら) 行数、(水平分割なら) セル数で、 またはパーセンテージでそれぞれ指定します。 その他のオプションは全て new-window コマンドと同様です。
swap-pane [-dDU] [-s src-pane] [-t dst-pane]
(別名: swapp) 2 つのペインを入れ替えます。 -U が使われ -s で入力ペインが指定されなかった場合、 dst-pane は前のペイン(数的に前)と、もしくは -D なら次のペイン(数的に後)と入れ替えられます。
swap-window [-d] [-s src-window] [-t dst-window]
(別名: swapw) 入力ウィンドウと出力ウィンドウが入れ替えられる点以外は link-window と同様です。 src-window のウィンドウが存在しなければエラーになります。
unlink-window [-k] [-t target-window]
(別名: unlinkw) target-window のリンクを解除します。 -k が与えられなければ、 ウィンドウは複数のセッションにリンクしている場合のみリンクを解除できます。 ウィンドウはどのセッションにもリンクしていない状態にはできません。 -k が指定されウィンドウが 1 つのセッションにだけリンクしている場合、 リンクが解除され破棄されます。
up-pane [-t target-pane]
(別名: upp) 上のペインへ移動します。
[1](1, 2) 訳注: 水平分割はペインが水平に並ぶように分割する。 VIM における水平分割/垂直分割の意味とは逆。

キーバインド

キーバインドに関するコマンドは以下の通りです:

bind-key [-cnr] [-t key-table] key command [arguments]

(別名: bind) キー keycommand に割り当てます。キーは Ctrl キーとして 'C-' または '^' を、 Alt (meta) キーとして 'M-' を先頭に指定できます。 デフォルト (-t なし) では (普通プレフィックスキーでアクティブになる) プライマリキーバインドが変更され、このケースで -n が指定された場合、 プレフィックスキーは使わなくてもよくなり、 コマンドは単独のキーに割り当てられます。 -r フラグはこのキーをリピートできるようにします。 repeat-time オプションを参照してください。

-t が与えられた場合、 keykey-table 内に割り当てられ、 -c ありでコマンドモード用に、 -c なしでノーマルモード用になります。 デフォルトの割り当てと使えるコマンドを観るには list-keys コマンドを観てください。

list-keys [-t key-table]

(別名: lsk) 全てのキーバインドを列挙します。 -t なしだとプライマリキーバインド ―これらはプレフィックスキーに続いたときに実行される― が出力されます。 プレフィックスキーなしで割り当てられたキー (bind-key -n を参照) は角括弧で囲まれます。

-t ありだと key-table 内のキーバインドが列挙され、 これは vi-edit, emacs-edit, vi-choice, emacs-choice, vi-copy, emacs-copy のいずれかです。

send-keys [-t target-pane] key ...
(別名: send) ウィンドウに 1 つ以上のキーを送信します。各引数 key は ('C-a' や 'npage' のような) キー名で、文字列がキーとして認識できなければ、 一連の文字群として送信されます。全引数は最初から最後まで連続的に送信されます。
send-prefix [-t target-pane]
プレフィックスキーを、それが押されたものとしてウィンドウに送信します。
unbind-key [-cn] [-t key-table] key

(別名: unbind) key に割り当てられたコマンドを解除します。 -t なしだとプライマリキーバインドが変更され、 このケースで -n が指定された場合、 プレフィックスなしで key に割り当てられたコマンドが(あれば)取り除かれます。

-t が与えられた場合、 -c ありでコマンドモード用の、 -c なしでノーマルモード用の keykey-table から解除されます。

オプション

様々なオプションを変更することで tmux の見た目と振る舞いを変更することができます。 セッションオプションウィンドウオプションの 2 種類のオプションがあります。

セッションのそれぞれが個別にセッションオプションの集合を保持し、 それとは別のグローバルなセッションオプションの集合が存在します。 特に設定されたオプションを持たないセッションオプションはグローバルなセッションオプションから値を引き継ぎます。 セッションオプションは set-option コマンドで設定や設定の解除がされ、 show-options コマンドで列挙することができます。 利用できるセッションオプションは set-option コマンドの項で列挙されています。

同様に、ウィンドウオプションの集合は各ウィンドウに属しており、 設定されていないオプションに引き継がれるグローバルなウィンドウオプションの集合があります。 ウィンドウオプションは set-window-option コマンドで変更され、 show-window-options コマンドで列挙することができます。 全ウィンドウオプションは set-window-option コマンドの項でドキュメントされています。

オプションを設定するコマンドは以下の通りです:

set-option [-agu] [-t target-session] option value

(別名: set) セッションオプションを設定します。 -a ありで、オプションが文字列を受け付けるなら value は既存の設定に追加されます。 -g が指定された場合、グローバルなセッションオプションに設定されます。 -u フラグはオプションの設定を解除し、 セッションはそのオプションをグローバルオプションから引き継ぎます。 グローバルオプションの設定を解除することはできません。

利用可能なセッションオプション:

base-index index
新しいウィンドウが作成されたときに、 使用されていない番号を探し始めるベースの番号を設定します。 デフォルトは 0 です。
bell-action [any | none | current]
ウィンドウベルのアクションを設定します。 any はセッションにリンクしているウィンドウのどれかでベルが発生すると、 そのセッションのカレントウィンドウでベルを発生させます。 none は全てのベルを無視し、 current はカレントウィンドウ以外のベルを無視します。
buffer-limit number
各セッションで保持するバッファ数を設定します。 新しいバッファはスタックの先頭に追加され、 この最大数を超えないよう古いものを底から削除されます。
default-command command
新しいウィンドウで使われるコマンドを command に設定します。 これには sh(1) コマンドの一種が指定できます。 デフォルトは空文字列で、これは tmuxdefault-shell オプションの値をつかってログインシェルを実行することを指示します。
default-shell path
デフォルトのシェルを指定します。これは default-command オプションが空の場合に新しいウィンドウのログインシェルとして利用されるもので、 実行可能ファイルのフルパスでなければなりません。 tmux は開始時に環境変数 SHELL 、またはシェルが getpwuid(3) で返す値、または /bin/sh の中から一番適したものをデフォルト値として設定します。 tmux をログインシェルとして使うなら、 このオプションは設定しておくべきです。
default-path path
キーまたはプロンプトから対話的に作成されるプロセスの、 デフォルトの作業ディレクトリを設定します。 デフォルトはサーバー起動時のカレント作業ディレクトリです。
default-terminal terminal
このセッションで作成される新しいウィンドウのデフォルトの端末を設定します。 これは環境変数 TERM のデフォルト値です。 tmux を正しく動作させるために、 これには 'screen' かそれから派生したものを設定しなければなりません
display-panes-colour colour
display-panes コマンドで使う色を設定します。
display-panes-time time
display-panes コマンドで表示されたインジケータが消えるまでの時間をミリ秒で設定します。
display-time time
ステータスラインメッセージや他のスクリーン上のインジケータが表示される時間を設定します。 time はミリ秒です。
history-limit lines
ウィンドウ履歴で保持される最大行数を設定します。 この設定は新しいウィンドウにのみ適用され、既存のウィンドウ履歴はリサイズされず、 それらが作成されたときの制限を保ちます。
lock-after-time number
number 秒の無操作でサーバーをロックします。 デフォルトはオフ (0 に設定) です。 これはセッションオプションとしては効果がなく、 -g をつかってグローバルオプションとして設定されなければなりません。 間違ったパスワードが入力されたとき、 tmux は login(1) の振る舞いに従って、 次のパスワード入力を、延長したタイムアウトまで無視します。
message-attr attributes
ステータスラインメッセージの属性を設定します。 attributesdefault か、 bright (または bold), dim, underscore, blink, reverse, hidden, italics の 1 つ以上のコンマ区切りリストのどちらかです。
message-bg colour
ステータスラインメッセージの背景色を設定します。 colourblack, red, green, yellow, blue, magenta, cyan, white, 256 色パレットの colour0 から colour255, default のいずれか 1 つです。
message-fg colour
ステータスラインメッセージの前景色を設定します。
prefix key
プレフィックスキーを設定します。
repeat-time time
指定した time ミリ秒 (デフォルトは500) の間、 複数のコマンドを再度プレフィックスキーを押さずに入力することができます。 キーを割り当てるときに bind-key-r フラグを使うことでキーリピートができるようになります。 resize-pane コマンドのデフォルトのキーバインドはリピートが有効になっています。
set-remain-on-exit [on | off]
このセッションから作られたウィンドウに対して、 remain-on-exit ウィンドウオプションを設定します。
set-titles [on | off]
端末が xterm のようなら xterm コード e]2;...007 を使ってウィンドウタイトルを設定しようとします。 このオプションはデフォルトでオフです。 elinks は環境変数 STY が設定されている場合、 ウィンドウタイトルを設定しようとするだけであることに注意してください。
set-titles-string string
set-titles がオンならウィンドウタイトルに string が使われます。 キャラクタシーケンスは status-left オプションと同じように置き換えられます。
status [on | off]
ステータスラインを表示または非表示にします。
status-attr attributes
ステータスラインの属性を設定します。
status-bg colour
ステータスラインの背景色を設定します。
status-fg colour
ステータスラインの前景色を設定します。
status-interval interval
ステータスバーを interval 秒毎に更新します。 デフォルトでは更新は 15 秒毎に発生します。 0 を設定すると周期的な再描画は無効になります。
status-justify [left | centre | right]
ステータスラインのウィンドウ一覧部の位置を、左、中央、右揃えで設定します。
status-keys [vi | emacs]
コマンドプロンプトなど、ステータスラインで vi または emacs スタイルのキーバインドを利用します。デフォルトはemacsです。
status-left string

ステータスバーの左に string を表示します。 string は先に strftime(3) を通してから使われます。 デフォルトではセッション名が表示されます。 string に次の特別なキャラクタシーケンス [2] を含めることができます:

キャラクタペア [2] 置換先
#(コマンド) コマンドの出力の 1 行目
#[属性] 色または属性の変更
#H ローカルホストのホスト名
#I カレントウィンドウ番号
#P カレントペイン番号
#S セッション名
#T カレントウィンドウタイトル
#W カレントウィンドウ名
## リテラルの '#'

#(コマンド)形は 'コマンド' をシェルコマンドとして実行し、 その出力の 1 行目を挿入します。 #[属性]は属性をコンマ区切りリストで指定でき、 それらは前景色を設定する 'fg=色' 、背景色を設定する 'bg=色'、 message-attr オプションの項で述べられている属性のいずれかになります。 例:

#(sysctl vm.loadavg)
#[fg=yellow,bold]#(apm -l)%%#[default] [#S]

必要に応じて '#24T' のように、 最大長を指定するために数値を前に付けることができます。

デフォルトでは、 string を UTF-8 とは解釈しないので、 UTF-8 を有効にするには status-utf8 オプションを使用してください。

[2](1, 2) 訳注:キャラクタシーケンス (character sequence) とキャラクタペア (character pair) は同義だと思われる。
status-left-attr attributes
ステータスラインの左部分の属性を設定します。
status-left-fg colour
ステータスラインの左部分の前景色を設定します。
status-left-bg colour
ステータスラインの左部分の背景色を設定します。
status-left-length length
ステータスバーの左部の最大長を設定します。デフォルトは 10 です。
status-right string
ステータスバーの右に string を表示します。 デフォルトでは日付と時刻が表示されます。 status-left と同じように string は strftime(3) に通され、 キャラクタペアは置換され、 UTF-8 は status-utf8 オプションに依存します。
status-right-attr attributes
ステータスラインの右部分の属性を設定します。
status-right-fg colour
ステータスラインの右部分の前景色を設定します。
status-right-bg colour
ステータスラインの右部分の背景色を設定します。
status-right-length length
ステータスバーの右部の最大長を設定します。デフォルトは 40 です。
status-utf8 [on | off]

status-left 及び status-right の文字列中のtop-bit-set文字 [3] を UTF-8 として扱うように tmux に指示します。 これはワイド文字に対して特に重要です。 このオプションはデフォルトでオフです。

[3]訳注: 非ASCII文字
terminal-overrides string

terminfo(5) を使って読み込まれた端末の記述を上書きするエントリーのリストです。 string はコンマ区切りリストで、 各アイテムは (fnmatch(3) を使ってマッチする) 端末タイプのパターンと name=value 項目のエントリーからなるコロン区切り文字列です。

例として、全ての端末タイプで terminfo(5) エントリー 'clear' を 'e[He[2J' に、端末タイプ 'rxvt' でエントリー 'dch1' を 'e[P' に設定するには、 このような文字列がオプションにセットされるでしょう:

"*:clear=\e[H\e[2J,rxvt:dch1=\e[P"

端末エントリーの値は解釈される前に strunvis(3) に通されます。 デフォルト値は、 88 または 256 色をサポートする端末の 'colors' エントリーを強制的に修正します:

"*88col*:colors=88,*256col*:colors=256"
update-environment variables
新しいセッションが作成されたときまたは既存のセッションがアタッチされたときに、 セッションの環境にコピーされる環境変数のリストのスペース区切り文字列を設定します。 コピー元の環境に存在しない変数を設定するとセッションの環境から削除されます (-r が与えられた set-environment コマンドのように)。 デフォルトは "DISPLAY WINDOWID SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION" です。
visual-activity [on | off]
オンなら、 monitor-activity ウィンドウオプションを有効にしたウィンドウで動作があったとき、 ステータスラインメッセージを表示します。
visual-bell [on | off]
このオプションがオンなら、ベルを端末に通す (普通それは音を鳴らす) 代わりにメッセージを表示します。 bell-action も参照してください。
visual-content [on | off]
visual-activity のように、 monitor-content ウィンドウオプションを有効にしたウィンドウで、 指定した内容が現れたときメッセージを表示します。
set-window-option [-agu] [-t target-window] option value

(別名: setw) ウィンドウオプションを設定します。 -a, -g, -u フラグは set-option コマンドと同じように動作します。

サポートされるウィンドウオプション:

aggressive-resize [on | off]
選択されたウィンドウを積極的にリサイズします。これは tmux が、 アタッチされた中での最小のセッションではなく、 カレントウィンドウが同じ中での最小のセッションのサイズに、 ウィンドウをリサイズするという意味です。ウィンドウは、 別のセッションでカレントウィンドウが変更されたときにリサイズします。 このオプションは SIGWINCH をサポートするフルスクリーンプログラムには向いていますが、 シェルのような対話型プログラムには向いていません。
automatic-rename [on | off]

ウィンドウの自動リネームを制御します。 ―サポートしているプラットフォーム上で― この設定が有効なとき、 tmux はそこで実行されているコマンドを反映した名前でウィンドウをリネームしようとします。 名前の指定を new-windownew-session での作成時や、 その後の rename-window で行ったとき、 このフラグは自動的に無効になります。 以下のようにしてグローバルでオフに切り替えることができます:

set-window-option -g automatic-rename off
clock-mode-colour colour
時計の色を設定します。
clock-mode-style [12 | 24]
時計の時のフォーマットを設定します。

force-height height

force-width width
tmux がウィンドウを width または height を超えてリサイズしないようにします。 値 0 はデフォルトの無制限の設定に戻します。

main-pane-width width

main-pane-height height
main-horizontal または main-vertical レイアウトにおける (左または上の) 主ペインの、 width または height を設定します。
mode-attr attributes
ウィンドウモードの属性を設定します。
mode-bg colour
ウィンドウモードの背景色を設定します。
mode-fg colour
ウィンドウモードの前景色を設定します。
mode-keys [vi | emacs]
スクロールモード、コピーモード、選択モードで vi または emacs スタイルのキーバインドを使います。 キーバインドのデフォルトは emacs です。
mode-mouse [on | off]
モードでのマウスの状態です。 オンなら tmux はマウスクリックに対して、 コピーモードでカーソルを動かしたり選択モードで選択することで反応します。
monitor-activity [on | off]
ウィンドウでの動作を監視します。 ウィンドウで動作があるとステータスラインでハイライトされます。
monitor-content match-string
ウィンドウの内容を監視します。 ウィンドウで fnmatch(3) パターンの match-string が現れたとき、 ステータスラインでハイライトされます。
remain-on-exit [on | off]
このフラグが設定されたウィンドウは、 そこで実行されているプログラムが終了しても破棄されません。 そのウィンドウは respawn-window コマンドで再度アクティブにすることができます。
utf8 [on | off]
このウィンドウで UTF-8 シーケンスが現れることに備えるよう tmux に指示します。
window-status-attr attributes
ステータスラインの各ウィンドウの属性を設定します。
window-status-bg colour
ステータスラインの各ウィンドウの背景色を設定します。
window-status-fg colour
ステータスラインの各ウィンドウの前景色を設定します。
window-status-current-attr attributes
ステータスラインのアクティブウィンドウの属性を設定します。
window-status-current-bg colour
ステータスラインのアクティブウィンドウの背景色を設定します。
window-status-current-fg colour
ステータスラインのアクティブウィンドウの前景色を設定します。
xterm-keys [on | off]
このオプションが設定されると、 tmux は xterm(1) スタイルのファンクションキーシーケンスを生成します。 Shift, Alt, Ctrl のようなモディファイヤを表すものも含まれます。
show-options [-g] [-t target-session]
(別名: show) target-session の、または -g ありならグローバルセッションの、 セッションオプションを表示します。
show-window-options [-g] [-t target-window]
(別名: showw) target-window の、または -g ありならグローバルウィンドウの、 ウィンドウオプションを表示します。

環境

サーバーの起動時に tmux は環境をグローバル環境にコピーします。 加えて、各セッションはセッション環境を持っています。 ウィンドウの作成時にセッション環境とグローバル環境は、 セッション環境で上書きしながらマージされます。 これが新しいプロセスに引き継がれる初期環境です。

update-environment セッションオプションは、 新しいセッションが作成されたときや古いセッションが再度アタッチされたときに、 セッション環境をクライアントから更新するのに使えます。 tmux は 内部からコマンドを実行できるよう、 TMUX 変数をいくつかの内部情報で、 TERM 変数を正しい端末設定である 'screen' に初期化します。

環境を変更・閲覧するコマンド:

set-environment [-gru] [-t target-session] name [value]
環境変数を設定または設定解除します。 -g が使われると変更はグローバル環境に対して行われます。 そうでなければ、 target-session のセッション環境に適用されます。 -u フラグは設定を解除します。 -r は新しいプロセスが開始される前に環境から変数が削除されるようにします。
show-environment [-g] [-t target-session]
target-session の環境を、 または -g ありならグローバル環境を、表示します。 環境から削除された変数は '-' で始まります。

ステータスライン

tmux は各端末の最下行に表示される任意のステータスラインを持っています。 デフォルトではステータスラインは有効で (status セッションオプションで無効にできます)、 左から順に、角括弧付きカレントセッション名、ウィンドウリスト、 ダブルクォート付きカレントウィンドウタイトル、時刻、日付が配置されています。

ステータスラインは 3 つの部分から成ります。設定可能な左と右のセクション (時刻やシェルコマンドの出力のような動的コンテンツを置くことができます。 status-left, status-left-length, status-right, status-right-length オプションを参照してください。) と中央のウィンドウリストです。 ウィンドウリストはカレントセッションでのウィンドウの番号、名前、 (あれば) フラグを数値の昇順で表示します。 フラグはウィンドウ名に付加される、以下に挙げた記号のいずれかです:

記号 意味
* カレントウィンドウ
- (直前に選択された) 最後のウィンドウ
# ウィンドウは監視されていて動作が検出された
! ウィンドウでベルが発生した
+ ウィンドウの内容が監視されていてそれが現れた

記号 # は monitor-activity ウィンドウオプションに、 + は monitor-content ウィンドウオプションに関係しています。 アラート (ベル、動作、内容) があると、ウィンドウ名は反転色で表示されます。 ステータスラインの色と属性は設定可能で、ステータスライン全体は status-attr, status-fg, status-bg セッションオプションを、 個々のウィンドウは window-status-attr, window-status-fg, window-status-bg ウィンドウオプションを使います。

ステータスラインは変更があれば周期的に自動更新され、その周期は status-interval セッションオプションで制御できます。

ステータスラインに関するコマンドは以下の通りです:

command-prompt [-p prompts] [-t target-client] [template]
クライアントでコマンドプロンプトを開きます。 tmux 内部からコマンドを対話的に実行するのに使えます。 template が指定された場合、コマンドとして使われます。 -p が与えられた場合、 prompts は順に表示されるプロンプトのコンマ区切りリストです。 そうでなければ 1 つのプロンプトが表示され、それは template が与えられているならそこから構築し、それ以外なら ':' になります。 コマンドが実行される前に、最初に現れる文字列 '%%' と全ての '%1' は最初のプロンプトでの入力で置き換えられ、 次の '%%' と全ての '%2' は 2 回目のプロンプトでの入力で置き換えられ、以下同様の処理が行われます。 9 回までプロンプトでの入力が置き換えられます('%1' から '%9')。
confirm-before [-t target-client] command
(別名: confirm) コマンドを実行する前に確認します。 このコマンドは tmux 内部でのみ動作します。
display-message [-t target-client] [message]
(別名: display) ステータスラインにメッセージ (status-left オプションを参照) を表示します。
select-prompt [-t target-client]
target-client の内部で、 ウィンドウ番号を対話的に入力できるプロンプトを開きます。

バッファ

tmux は各セッションでペーストバッファのスタックが管理されています。 buffer-limit オプションの値までは保持され、 新しいバッファが追加されたとき、スタックの底のバッファが削除されます。 バッファは copy-mode 及び set-buffer コマンドを使って追加することができ、 paste-buffer コマンドでウィンドウに貼り付けることができます。

各ウィンドウで設定可能な履歴バッファもまた管理されています。 デフォルトでは 2000 行まで保持され、これは history-limit オプションで変更できます(set-option コマンド参照)。

バッファのコマンドは以下の通りです:

clear-history [-t target-pane]
(別名: clearhist) 指定されたペインで履歴を削除して解放します。
copy-buffer [-a src-index] [-b dst-index] [-s src-session] [-t dst-session]
(別名: copyb) セッションのペーストバッファを別のセッションへコピーします。 セッションが指定されなければ、カレントセッションが代わりに使われます。
delete-buffer [-b buffer-index] [-t target-session]
(別名: deleteb) buffer-index の、または指定されなければ先頭のバッファが削除されます。
list-buffers [-t target-session]
(別名: lsb) 与えられたセッションのバッファを列挙します。
load-buffer [-b buffer-index] [-t target-session] path
(別名: loadb) 指定されたペーストバッファの内容を path から読み込みます。
paste-buffer [-dr] [-b buffer-index] [-t target-window]
(別名: pasteb) ペーストバッファの内容をカレントウィンドウに挿入します。 -d を付けるとスタックからそのペーストバッファの削除も行います。 出力するとき、ペーストバッファに含まれるラインフィード (LF) はキャリッジリターン (CR) に置き換えられます。 この変換は -r フラグで無効にできます。
save-buffer [-a] [-b buffer-index] [-t target-session] path
(別名: saveb) 指定されたペーストバッファの内容を path に保存します。 -a オプションは上書きではなく追記を行います。
set-buffer [-b buffer-index] [-t target-session] data
(別名: setb) 指定されたバッファの内容を data にします。
show-buffer [-b buffer-index] [-t target-session]
(別名: showb) 指定されたバッファの内容を表示します。

その他

その他のコマンドは以下の通りです:

clock-mode [-t target-pane]
大きな時計を表示します。
if-shell shell-command command
(別名: if) shell-command が成功した場合に command を実行します。
lock-server
(別名: lock) Lock the server until a password is entered. パスワードが入力されるまでサーバーをロックします。
server-info
(別名: info) サーバーの情報と端末の詳細を表示します。
set-password [-c] password
(別名: pass) サーバーのパスワードを設定します。 -c オプションを与えることで暗号化されたパスワードを指定することができます。 デフォルトではパスワードは空なので、サーバーをアンロックするとき (lock-server コマンドを参照) 入力されたパスワードは何でも受け入れます。 設定ファイルから暗号化されたパスワードを読み込ませるときに、 変数の展開を防ぐには、シングルクォートで囲ってください。

ファイル

~/.tmux.conf
デフォルトの tmux 設定ファイル。
/etc/tmux.conf
システム全体の設定ファイル。

新しい tmux セッションを作成して vi(1) を実行:

$ tmux new-session vi

コマンドの多くは別名(alias)という省略形を持っています。 new-session だと new になります:

$ tmux new vi

また、コマンドの最短で一意な形を受け付けます。 複数のコマンドがある場合は列挙されます:

$ tmux n
ambiguous command: n, could be: new-session, new-window, next-window

アクティブなセッションにおいて、 'C-b c' (Ctrlに続いて 'b', 'c') を入力することで新しいウィンドウを作成することができます。

'C-b 0' (ウィンドウ 0 を選択) や 'C-b 1' (ウィンドウ 1 を選択) などでウィンドウを操作することができます。 'C-b n' で次のウィンドウを選択し、 'C-b p' で前のウィンドウを選択します。

'C-b d' (または ssh(1) の切断のような外部イベント) でセッションをデタッチでき、以下のコマンドで再アタッチできます:

$ tmux attach-session

'C-b ?' を入力するとカレントウィンドウの現在のキーバインドを列挙し、 上と下でリストを操作し、 'q' でそれを終了します。

tmux サーバーが起動したときに実行されるコマンドは ~/.tmux.conf 設定ファイルに配置することができます。一般的な例を挙げると:

デフォルトのプレフィックスキーを変更:

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

ステータスラインをOFF、または色変更:

set-option -g status off
set-option -g status-bg blue

他のオプションを設定、例えばデフォルトコマンドや 30 分の無操作でのロック:

set-option -g default-command "exec /bin/ksh"
set-option -g lock-after-time 1800

新しいキーバインドの作成:

bind-key b set-option status
bind-key / command-prompt "split-window 'exec man %%'"
bind-key S command-prompt "new-window -n %1 'ssh %1'"

関連項目

pty(4)

著者

Nicholas Marriott <nicm@users.sourceforge.net>

日本語訳について

これは tmux の man page を日本語に翻訳したものです。

オリジナル:http://tmux.sourceforge.net/
訳者:Takeshi NISHIDA <ns9tks@DELETE-ME.gmail.com>
ライセンス:オリジナルに準拠
対象バージョン:1.0