TT Lab
はじめる
学ぶ 学習パス コース

vimとtmux

tmuxのペインとレイアウト

TT Labで続きを見る

目標

1つのウィンドウの中でペインを分割し、タイトルを付け、拡大・同期して、スクロールバックをファイルに残します。最後に、開発レイアウトを一度に再現するスクリプトを作ります。

なぜ重要なのか

ペインは、「画面を分ける機能」以上のものです。エディター・サーバー・ログを1つの画面に置くと、コンテキストの切り替えコストがなくなり、複数のサーバーにつないだペインを同期すれば、同じコマンドを一度に実行できます。そして、実務でよく抜けるのが新しいペインの作業ディレクトリです。指定しないとホームで開くため、毎回cdを打ち直す必要があります。最後に、tmuxの-hは「横分割」ではなく左右配置という意味なので、ほとんどの人が一度は混同します。口頭では、左右・上下と呼ぶほうが安全です。

ステップ

  1. panesセッションにdevという名前のウィンドウを作成し、ペインを2つ以上に分割してください。
  2. devウィンドウのペインをちょうど3つにしてください。
  3. 3つのペインのタイトルを、それぞれeditor、server、logsに指定してください。
  4. devウィンドウのペインの1つを、拡大(zoom)した状態にしてください。
  5. タイトルがlogsのペインで、tail -fが実行され続けるようにしてください。
  6. devウィンドウのペインの同期(synchronize-panes)を有効にしてください。
  7. ペインの1つでlabhub-pane-checkを出力し、続けてseq 1 100を実行したあと、そのペインのスクロールバック全体を/root/tmux/pane.logに保存してください。ファイルにはlabhub-pane-checkと100の両方が含まれている必要があり、100行以上である必要があります。
  8. /root/tmux/dev.sh <세션이름>を作成してください(プレースホルダーはセッション名です)。引数として受け取った名前のセッションをアタッチせずに作成し、devウィンドウにペインを3つ置いて、タイトルはeditor/server/logs、そして、editorペインの作業ディレクトリが/root/tmuxである必要があります。

参考

ペインを分割する

panesセッションにdevという名前のウィンドウを作成し、ペインを2つ以上に分割してください。

prefix + %は左右、prefix + "は上下に分割します。CLIではsplit-windowです。

3分割にする

devウィンドウのペインをちょうど3つにしてください。

すでに分割したペインを、もう一度分割します。どのペインがアクティブかによって、分割される位置が変わります。

ペインにタイトルを付ける

3つのペインのタイトルを、それぞれeditor、server、logsに指定してください。

select-paneに、タイトルを指定するオプションがあります。ペインごとに別々に付ける必要があります。

ペインを拡大する

devウィンドウのペインの1つを、拡大(zoom)した状態にしてください。

prefix + zで切り替えます。採点時点で、拡大状態にしておいてください。

logsペインでログを追跡する

タイトルがlogsのペインで、tail -fが実行され続けるようにしてください。

タイトルがlogsのペインで、tail -fを実行します。対象のペインを指定して、send-keysで送ることもできます。

ペインの同期を有効にする

devウィンドウのペインの同期(synchronize-panes)を有効にしてください。

ウィンドウオプションなので、setwを使います。有効にすると、入力がすべてのペインに同時に送られます。

スクロールバックをファイルに保存する

ペインの1つでlabhub-pane-checkを出力し、続けてseq 1 100を実行したあと、そのペインのスクロールバック全体を/root/tmux/pane.logに保存してください。ファイルにはlabhub-pane-checkと100の両方が含まれている必要があり、100行以上である必要があります。

capture-paneは、デフォルトでは見えている画面だけを取得します。開始位置をスクロールバックの一番上に指定するオプションが必要です。

開発レイアウトのスクリプト

/root/tmux/dev.sh <세션이름>を作成してください(プレースホルダーはセッション名です)。引数として受け取った名前のセッションをアタッチせずに作成し、devウィンドウにペインを3つ置いて、タイトルはeditor/server/logs、そして、editorペインの作業ディレクトリが/root/tmuxである必要があります。

新しいペインは、指定しないとホームで開きます。作業ディレクトリを明示するオプションを探してみてください。