Windows Terminalで開発用3ペイン環境を一発起動する方法

Windows Terminalで作業していると、1つのプロジェクトに対して複数のターミナルを並べて使いたくなることがあります。

私の場合は、Ubuntu環境では tmux を使って「左上にNeovim、左下に通常ターミナル、右側にGemini CLI」という3ペイン構成を使っています。

同じような構成をWindows TerminalとPowerShellでも実現したくなりました。

この記事では、Windows Terminalのショートカットキーから、次の3ペイン構成を一発で起動する方法をまとめます。

  • 左上:edit .
  • 左下:通常のPowerShell
  • 右側:gemini

ポイントは、単にペインを分割するだけでなく、「ショートカットキーを押した時点のカレントディレクトリ」を3つのペインすべてに引き継ぐことです。

この記事で行うこと

Windows Terminalの settings.json にアクションを追加し、Ctrl + Shift + L を押すだけで開発用レイアウトを作成できるようにします。

完成形は次のような構成です。

左上: edit .
左下: PowerShell
右側: gemini

たとえば、PowerShellで次のディレクトリにいる状態でショートカットキーを押した場合、

PS C:\share>

3つのペインすべてが C:\share> を初期ディレクトリとして起動します。

前提

この記事では、次の環境を前提にしています。

  • Windows Terminalを使用している
  • PowerShell 7系を使用している
  • gemini コマンドがPowerShellから実行できる
  • edit コマンドがPowerShellから実行できる

この記事では、gemini や edit のインストール手順そのものは扱いません。

edit コマンドについては、以下の記事にまとめています。

Windowsの次世代ターミナルエディタ!「Microsoft Edit 2.0」の使い方・インストールとeditコマンド競合の解決策
はじめに:Windows環境のCUIエディタ事情MS-DOS時代からコマンドプロンプトに存在する古い「edit」コマンドが、2026年4月にリリースされた Microsoft Edit (microsoft/edit) バージョン 2.0….

gemini コマンドを含む開発環境の初期設定については、以下の記事も参考にしてください。

Ubuntu 26.04 初期設定まとめ|日本語入力・開発環境・Zsh まで一通り
Ubuntu 26.04 LTS(Resolute Raccoon)をクリーンインストールした直後は、そのままでは使いにくい点がいくつかあります。何度かインストールを繰り返すうち、毎回同じ作業を手順化しておきたいと思うようになりました。この…

なぜ普通のsplitPaneだけではうまくいかないのか

Windows Terminalには、ペインを分割するための splitPane アクションがあります。

単純にペインを分割するだけなら、Windows Terminalの設定画面からでも簡単にできます。

しかし、今回やりたいことは少し複雑です。

  • 現在のカレントディレクトリを引き継ぎたい
  • 右ペインで gemini を起動したい
  • 左上ペインで edit . を起動したい
  • 左下ペインは通常のPowerShellとして残したい
  • これらを1つのショートカットキーで実行したい

最初は splitPane の splitMode: "duplicate" を使えばよさそうに見えます。

ただ、実際に試すと、新しく作成されたペインが期待したディレクトリではなく、ユーザーのホームディレクトリで起動することがありました。

つまり、次のような状態です。

  • 左上の edit . は現在のディレクトリで開く
  • 左下のPowerShellは C:\Users\ユーザー名 で開いてしまう
  • 右側のPowerShellも C:\Users\ユーザー名 で開いてしまう
  • gemini も期待通りに起動しない

そこで、Windows Terminalにカレントディレクトリの複製を任せるのではなく、PowerShell側で現在のディレクトリを取得し、その値を wt コマンドの -d オプションに明示的に渡す方法にしました。

解決策

今回のポイントは、次の1行です。

$d=(Get-Location).ProviderPath

Get-Location は、現在のPowerShellのカレントディレクトリを取得するコマンドです。

.ProviderPath を使うことで、C:\share> のようなWindowsの通常パスとして取得できます。

このパスを $d に入れておき、Windows Terminalの wt コマンドで新しいペインを作るときに、次のように渡します。

wt -w 0 sp -V -d "$d"

-d "$d" を付けることで、新しいペインの開始ディレクトリを明示できます。

settings.jsonに追加する内容

Windows Terminalの設定画面を開き、「JSONファイルを開く」から settings.json を編集します。

まずは、次のアクションを追加します。

{
  "name": "Create development panes",
  "keys": "ctrl+shift+l",
  "command": {
    "action": "sendInput",
    "input": "$d=(Get-Location).ProviderPath; wt -w 0 sp -V -d \"$d\" pwsh.exe -NoExit -Command gemini `; mf left `; sp -H -d \"$d\" pwsh.exe `; mf up; edit .\r"
  }
}

Windows Terminalのバージョンによっては、保存後に keys の設定が actions から keybindings 側へ自動的に分離されます。

私の環境では、最終的に次のような形になりました。

{
  "actions": [
    {
      "command": {
        "action": "sendInput",
        "input": "$d=(Get-Location).ProviderPath; wt -w 0 sp -V -d \"$d\" pwsh.exe -NoExit -Command gemini `; mf left `; sp -H -d \"$d\" pwsh.exe `; mf up; edit .\r"
      },
      "id": "User.sendInput.81E74E00",
      "name": "Create development panes"
    }
  ],
  "keybindings": [
    {
      "id": "User.sendInput.81E74E00",
      "keys": "ctrl+shift+l"
    }
  ]
}

id の値は環境によって変わることがあります。

既存の settings.json に追加する場合は、すでにある actions や keybindings の配列の中に追加してください。

コマンドの中身を分解する

設定している input は長いですが、やっていることは順番に見るとシンプルです。

$d=(Get-Location).ProviderPath;
wt -w 0 sp -V -d "$d" pwsh.exe -NoExit -Command gemini `;
mf left `;
sp -H -d "$d" pwsh.exe `;
mf up;
edit .

1. 現在のディレクトリを変数に入れる

$d=(Get-Location).ProviderPath

ショートカットキーを押した時点のカレントディレクトリを $d に保存します。

この値を後続のペイン作成時に使います。

2. 右側にGemini用ペインを作る

wt -w 0 sp -V -d "$d" pwsh.exe -NoExit -Command gemini

wt -w 0 は、現在のWindows Terminalウィンドウを対象にする指定です。

sp は split-pane の省略形です。

-V は左右方向の分割です。これで右側に新しいペインを作ります。

-d "$d" によって、右側のペインも現在のディレクトリで起動します。

最後に pwsh.exe -NoExit -Command gemini を指定しているため、右側のPowerShellで gemini が起動します。

3. フォーカスを左に戻す

mf left

mf は move-focus の省略形です。

右側のペインを作った直後は、フォーカスが右側に移ります。

次に左側を上下に分割したいため、いったんフォーカスを左に戻します。

4. 左側を上下に分割する

sp -H -d "$d" pwsh.exe

-H で上下方向に分割します。

これで左側が上下2つに分かれます。

このときも -d "$d" を付けているため、左下のPowerShellも現在のディレクトリで起動します。

ここでは特にコマンドを指定していないため、左下は通常のPowerShellとして残ります。

5. 左上に戻ってeditを起動する

mf up
edit .

左側を上下分割した直後は、フォーカスが左下にあります。

そこで mf up で左上に戻り、最後に edit . を実行します。

これで左上に edit、左下に通常のPowerShell、右側にGemini CLIという構成になります。

設定後の使い方

設定を保存したら、Windows Terminalを開き直します。

任意の作業ディレクトリに移動します。

cd C:\share>

その状態で、次のショートカットキーを押します。

Ctrl + Shift + L

すると、現在のディレクトリを引き継いだ状態で、3つのペインが作成されます。

うまく動かない場合

geminiが起動しない

まず、通常のPowerShellで gemini コマンドが実行できるか確認してください。

gemini

コマンドが見つからない場合は、Gemini CLIのインストールやPATH設定を確認します。

editが起動しない

同じく、通常のPowerShellで次のコマンドが実行できるか確認します。

edit .

edit が起動しない場合は、使用しているエディタの起動コマンドに合わせて、記事内の edit . の部分を変更してください。

たとえばVisual Studio Codeを使う場合は、次のように変更できます。

code .

新しいペインがホームディレクトリで開いてしまう

この場合は、-d "$d" が正しく入っているか確認してください。

今回の設定では、splitMode: "duplicate" ではなく、PowerShellで取得した現在のディレクトリを wt コマンドに明示的に渡しています。

そのため、重要なのは次の2点です。

  • 最初に $d=(Get-Location).ProviderPath を実行していること
  • ペイン作成時に -d "$d" を指定していること

Ctrl + Shift + Lが反応しない

Windows Terminalの設定画面で、ショートカットキーが別のアクションと競合していないか確認してください。

また、settings.json を保存したあとに、Windows Terminalを再起動すると反映されやすくなります。

注意点

この設定は、現在開いているPowerShellペインにコマンドを入力する sendInput アクションを使っています。

そのため、未入力のコマンドがある状態でショートカットキーを押すと、その行に続けて文字列が入力される可能性があります。

実行する前に、PowerShellのプロンプトが空の状態であることを確認してください。

また、既にペインを分割している状態で実行すると、さらにペインが追加されます。

基本的には、新しいタブ、またはまだ分割していないPowerShellペインで実行するのがおすすめです。

まとめ

Windows Terminalでも、tmuxのように開発用の3ペイン構成をショートカットキー一発で作成できます。

今回のポイントは、Windows Terminalの splitPane だけに任せるのではなく、PowerShellで現在のディレクトリを取得して wt -d に渡すことです。

$d=(Get-Location).ProviderPath

この一手間を入れることで、左上の edit、左下のPowerShell、右側のGemini CLIを、すべて同じカレントディレクトリで起動できます。

Windows環境でもAIコーディング用の作業スペースを素早く作りたい場合に、かなり便利な設定です。