統合ターミナル

Visual Studio Code内でワークスペースのルートの統合ターミナルを開くことができます。これはコマンドラインのタスクを実行するためにウィンドウを切り替えたり、既存ターミナルの状態を変更する必要がないので、非常に便利です。

ターミナルを開くには:

  • ⌃` (Windows, Linux Ctrl+`)を使用します。
  • 表示 > 統合ターミナル を使用します。
  • コマンドパレット(⇧⌘P (Windows, Linux Ctrl+Shift+P)) から View:Toggle Integrated Terminal コマンドを使用します。

Terminal

Note: 今まで通りVS Codeの外で作業するときは、エクスプローラーでOpen in Command Promptコマンド(Mac LinuxではOpen in Terminal)を使用して外部のシェルを開いてください。

複数の端末を管理する

さまざまな場所を開く複数のターミナルを作成でき、その間を簡単に移動することができます。ターミナルのインスタンスはターミナルパネル右上にあるプラスアイコンから追加するか⌃⇧` (Windows, Linux Ctrl+Shift+`)コマンドで追加できます。これによりドロップダウンメニューではこのエントリーが追加され、これらを切り替えることができるようになります。

Multiple Terminals

ここではゴミ箱ボタンをおすことで、ターミナルのインスタンスを削除します。

Tip: 複数のターミナルを大々的に使用する場合は、キーバインドのセクションで解説されているfocusNextfocusPreviouskillコマンドをキーバインドに追加して、それらの間の移動をキーボードのみで可能にすることができます。

構成

シェルはLinuxとOS Xで$SHELL、Windows 10ではPowerShellが旧Windowsではcmd.exeが使用されます。これらは設定terminal.integrated.shell.*を設定するとで上書きされます。引数はterminal.integrated.shellArgs.*設定を使用してLinuxとOS Xのターミナルシェルに渡すことができます。

Windows

現在WIndows上のシェルの構成は、正しい実行可能ファイルの場所と設定の更新が問題となります。一般的なコマンドシェルのリストと既定の場所を次のリストに示します:

// 利用可能なら 64-bit cmd そうでなければ 32-bit
"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\cmd.exe"
// 利用可能なら 64-bit PowerShell そうでなければ 32-bit
"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\WindowsPowerShell\\v1.0\\powershell.exe"
// Git Bash
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
// Bash on Ubuntu (on Windows)
"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe"

Note: 統合ターミナルとして使用するには、シェルの実行可能ファイルがコンソールアプリケーションである必要があります。つまりstdin/stdout/stderrがリダイレクトできるということです。

Tip: 統合ターミナルはVS Codeのパーミッションで実行されます。管理者(administrator)権限または違うパーミッションでシェルコマンドを実行するときは、ターミナル内でrunas.exeといったplatform utilitiesを使用してください。

Linux & OS X

通常$SHELLはUnix系システムで基本のシェルですから、おそらくこのシェルを変更したいとは思わないでしょう。これの回避策に起動時に引数をシェルに渡すことができます。

たとえばbashを(.bash_profileを実行する)ログインシェルとして実行するには-l引数を渡します:

// Linux
"terminal.integrated.shellArgs.linux": ["-l"]
// OS X
"terminal.integrated.shellArgs.osx": ["-l"]

ターミナルの表示設定

統合ターミナルのフォント、行の高さは次の設定でカスタマイズできます:

  • terminal.integrated.fontFamily
  • terminal.integrated.fontSize
  • terminal.integrated.lineHeight

キーバインド

View: Toggle Integrated Terminal コマンドは⌃` (Windows, Linux Ctrl+`)にバインドされ、統合ターミナルのパネルを素早く切り替えることができます。

統合ターミナルで素早い移動に使用できるショートカットは次の通りです:

KeyCommand
⌃` (Windows, Linux Ctrl+`)統合ターミナルの切り替え
⌃⇧` (Windows, Linux Ctrl+Shift+`)新しいターミナルを作成
⌥⌘PageUp (Windows Ctrl+Alt+PageUp, Linux Ctrl+Shift+Up)スクロールアップ
⌥⌘PageDown (Windows Ctrl+Alt+PageDown, Linux Ctrl+Shift+Down)スクロールダウン
PageUp (Windows, Linux Shift+PageUp)スクロールアップ(ページ)
PageDown (Windows, Linux Shift+PageDown)スクロールダウン(ページ
⌘Home (Windows Ctrl+Home, Linux Shift+Home)一番上にスクロール
⌘End (Windows Ctrl+End, Linux Shift+End)一番下にスクロール
⌘K (Windows Ctrl+K, Linux )ターミナルのクリア

その他ターミナルコマンドも利用可能で、好みのキーボードショートカットにバインドすることもできます。

次の通りです:

  • workbench.action.terminal.focus: ターミナルにフォーカスこれは切り替えの様ですが、ターミナルを開いているとき非表示にするのではなくフォーカスします。
  • workbench.action.terminal.focusNext: 次のターミナルにフォーカスします。
  • workbench.action.terminal.focusPrevious: 前のターミナルにフォーカスします。
  • workbench.action.terminal.kill:現在のターミナルインスタンスを削除します。
  • workbench.action.terminal.runSelectedText: アクティブな端末で選択したテキストを実行します。

選択したテキストの実行

runSelectedTextコマンドを使用するにはエディター内でテキストを選択したのち、コマンドパレット (⇧⌘P (Windows, Linux Ctrl+Shift+P))を介してTerminal: Run Selected Text in Active Terminalを実行します。

Run selected text

このターミナルは選択したテキストを実行しようとします。

Run selected text result

アクティブなエディター内で選択済みのテキストがない場合は、ファイルすべての内容で実行します。これはスクリプトやバッチファイルの全体を実行する場合に便利です。ファイルを開いて Terminal: Run Selected Text in Active Terminalを実行してください。

コピーアンドペースト

コピペに使用するキーバインドはプラットホームの標準に従います:

  • Linux: Ctrl+Shift+CCtrl+Shift+V
  • Mac: Cmd+CCmd+V
  • Windows: Ctrl+CCtrl+V

検索

統合ターミナルには⌘F (Windows, Linux Ctrl+F)で起動できる基本的な検索機能があります。

LinuxやWindowsでCtrl+Fを実行したいとき、検索ウィジェットを表示するのではなく、シェルに文字を入力させたい場合は次のようにキーバインディングを削除するひつようがあります:

{ "key": "ctrl+f", "command": "-workbench.action.terminal.focusFindWidget",
"when": "terminalFocus" },

ターミナルセッションの名前を変更

統合ターミナルセッションはTerminal: Rename (workbench.action.terminal.rename) コマンドを使用して名前を変更できます。新しい名前はターミナルセクションのドロップダウンで表示されます。

強制的にキーバインドをターミナルへ渡し通す

統合ターミナルにフォーカスがあるあいだ、キーストロークがターミナルに渡されるため多くのキーバインドは機能しません。terminal.integrated.commandsToSkipShell設定はこれを回避するのに使用できます。これにはシェルによるキーバインドの処理をスキップし、VS Codeのキーバインドシステムによって処理するようにしたいコマンドの配列を設定してください。既定では一般に使用されるキーバインドに加えすべてのターミナルのキーバインドを含んできます。

よくある質問

なぜ端末にフォーカスがあるときショートカット X が機能しないのですか?

現在のターミナルは多くのキーバインディングを隠してVisual Studio Codeが反応するのを防ぎます。例としてLinuxとWindowsの F1 コマンドパレットを開くCtrl+P Quick Open などが挙げられます。これは、端末プログラムとキーバインドの両方またはいずれか一方に反応する可能性があるため必要なのです。特定のキーバインディングが端末によって処理されるのを防ぐブラックリストを作成する計画があります(#7269 を参照してください)。

Windowsで統合ターミナルはcode 1で終了しました

これはWindowsをアップグレードした際に自動的に起こりやすい互換性モードで、VS Codeを実行したときに起こることがあります。解決には実行可能ファイルを右クリックしてプロパティを選択し、互換性のタブで”互換性モードで実行する”のチェックを外してください。

WindowsのターミナルでCmderを使用することはできますか?

可能です。VS CodeでCmderコンソールエミュレータを使用するにはcmderのパスに次の内容でvscode.batを作成する必要があります:

@echo off
SET CMDER_ROOT=C:\cmder (your path to cmder)
"%CMDER_ROOT%\vendor\init.bat"

次にVS Codeのユーザー設定で次をsettings.jsonに追加します:

"terminal.integrated.shell.windows": "C:\\WINDOWS\\sysnative\\cmd.exe",
"terminal.integrated.shellArgs.windows": ["/K", "C:\\cmder\\vscode.bat"]

Note: 上記の例はWindows 64bit上で32bitのVS Codeを使用しており、sysnativeを使用する必要があります。64 bitのVS Codeを使用している場合は、System32を使用してください。

cb7fea9ffdf45442cba2666b4855d70339685bba