ターミナル¶
画面の下にターミナルパネルがあります。
開く・閉じる¶
| 方法 | 動作 |
|---|---|
Ctrl+` |
表示を切り替える |
Ctrl+J |
表示を切り替える(ターミナルにフォーカスがないときだけ) |
Space t(Helix モード) |
表示を切り替える |
:sh <コマンド> |
ターミナルを開いてコマンドを実行する |
中身¶
- ログインシェル(
$SHELL -l)が PTY の上で動きます。.zshrcなども読み込みます。 vim、top、lazygitのような全画面のプログラムも動きます。- マウスのホイールで、流れた出力をさかのぼれます。
キー¶
フォーカスがターミナルにあるとき、ほとんどのキーはシェルへ渡ります。 shijimi が受け取るキーは次のとおりです。
| キー | 動作 |
|---|---|
Ctrl+Q |
shijimi を終了 |
Ctrl+` |
ターミナルを閉じる |
Alt+R |
リサイズモード(画面の見方) |
F1 |
コマンドパレット |
ターミナルは 1 つだけです。複数のターミナルが必要なら、herdr や tmux などのマルチプレクサを使ってください。シェルが終了するとパネルが閉じ、次に開いたときに新しいシェルが起動します。
コピー¶
マウスで選ぶ¶
ターミナルの中をマウスの左ボタンでドラッグすると、その範囲の文字を選べます。 ボタンを離すと、選んだ文字がクリップボードに入ります。
- マウスを使うプログラム(
vim、htop、tmux など)が動いているときは、Shiftを押しながらドラッグします。 - ドラッグ中にポインタをターミナルの上または下へ出すと、流れた出力をさかのぼって選べます。
- キーを押すか、ターミナルの中をクリックすると、選択は消えます。
プログラムからのコピー¶
ターミナルの中のプログラム(Claude Code、tmux など)が OSC 52 でコピーすると、その文字が shijimi のクリップボードに入ります。
- コピーが起きると、ステータスバーに「ターミナルから N 文字をコピーしました」と出ます。
- 外側のターミナルにも OSC 52 で送ります。SSH 越しでも、手元のクリップボードに入ります(外側のターミナルが OSC 52 に対応している場合)。
- 約 1.5 MB を超えるコピーは受け取りません。ステータスバーにエラーが出ます。
ターミナルマルチプレクサの中で¶
ターミナルマルチプレクサの中で shijimi を動かしていて、[experimental] の multiplexer が true(設定ファイル)で、そのマルチプレクサに対応しているとき、ターミナル系のコマンドはターミナルパネルの代わりにマルチプレクサのペインを使います。ペインの中で動かしたエージェントの状態検出・通知・復元はマルチプレクサに任せられます。どのマルチプレクサを使うかは [terminal] の multiplexer で決めます(既定は "auto" で、shijimi の親プロセスのうち一番内側のマルチプレクサを使います。"none" ならいつもターミナルパネルです)。今は herdr(HERDR_ENV=1)・tmux 3.1 以降(TMUX あり)・zellij 0.44 以降(ZELLIJ あり)・macOS の cmux(CMUX_WORKSPACE_ID と CMUX_SURFACE_ID あり)に対応しています。対応するマルチプレクサが無いとき、multiplexer = false のとき、"none" のときは、今までと変わりません。この節の以降は herdr・tmux・zellij・cmux の説明です。特に書かない限り同じように動きます。
| 方法 | 動作 |
|---|---|
Ctrl+` / Space t / :sh |
初回は shijimi のペインの真下にペインを作り、焦点を移す。以降はペインを隠す、または再表示して焦点を移す |
Ctrl+J |
ペインを表示して焦点を移す |
:sh <コマンド> |
ペインを表示してコマンドを実行する |
Space a / Alt+A |
ペインに文脈を貼る(Enter は送らない) |
shj exec ":sh hide" |
ペインを隠す。ペインの中で実行する。マルチプレクサのキーに割り当てられる |
- ペインは shijimi のペインのズームで隠します(tmux では
resize-pane -Z、zellij ではtoggle-fullscreen)。cmux にはズームが無いので、隠す操作は shijimi へフォーカスを戻すだけで、ペインは画面に残ります。cmux ではペインのシェルを起動するコマンドをペインに打ち込むので(cd <root> && exec env ...)、それが見えます。新しいペインは高さの 30% を取ります(zellij と cmux はタイル状のペインの大きさを決められないので半分です)。zellij はどの操作も--pane-idでペインを指すので、フォーカスの位置に左右されません。tmux でremain-on-exitにより残っている終了済みのペインは、終わったものとして扱い、新しく作ります。 - ペインはワークスペースの root で始まり、ターミナルパネルと同じ環境変数が入るので、そこで起動した
claudeは IDE 連携につながります。 - ペインを終わらせるには、そのシェルで
exitするか、マルチプレクサのキー(herdr はCtrl+B x、tmux はプレフィックスのあとx、zellij はCtrl+Pのあとx、cmux は cmux 自身のキーで surface を閉じる)を使います。そのあとのCtrl+`で新しいペインを作ります。shijimi を終了すると、作ったペインを閉じます。 - ペインから shijimi へ戻るには、マルチプレクサのキー(herdr は既定で
Ctrl+Bk、tmux はプレフィックスのあと矢印キーかselect-pane -U、zellij は既定でAlt+Up、cmux はペイン移動の cmux のキー)を使います。shijimi 自身のキー(Ctrl+Q・Ctrl+`・Alt+R・F1)はペインの中では効きません。 - ペインの画面・スクロール・マウスでのコピー・OSC 52 はマルチプレクサのものです。「ターミナルから N 文字をコピーしました」のメッセージは出ません。
- ペインのシェルは、コマンドごとの終了コードを
shj command-end <終了コード>で知らせるので、失敗したコマンドを調べる提案は今までどおり出ます。zsh と bash で動きます。bash はPROMPT_COMMANDで hook を渡すので、起動ファイルがPROMPT_COMMANDを置き換えると働きません。 - マルチプレクサのコマンドが失敗したときは、ステータスバーにエラーが出ます。
環境変数¶
ターミナルパネルのシェルには SHIJIMI_SOCKET が設定されます。
これを使って、シェルから shijimi を操作できます。
無いときは、shj が起動中の shijimi を自分で探します(AI エージェント連携 にあります)。
Claude Code の IDE 連携のために、CLAUDE_CODE_SSE_PORT、ENABLE_IDE_INTEGRATION=true、FORCE_CODE_TERMINAL=true も設定されます。
詳しくは AI エージェント連携 にあります。