VS Codeのエージェントモードを拡張するには、を試してください!

ターミナルの基本

Visual Studio Code には、ワークスペースのルートで開始されるフル機能の統合ターミナルが含まれています。エディターとの統合により、リンクエラー検出などの機能をサポートします。統合ターミナルでは、スタンドアロンのターミナルと同様に mkdir や git などのコマンドを実行できます。

次のようにしてターミナルを開くことができます。

  • メニューから、[ターミナル] > [新しいターミナル] または [表示] > [ターミナル] メニュー コマンドを使用します。
  • コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) から、[表示: ターミナルの切り替え] コマンドを使用します。
  • エクスプローラーでは、[統合ターミナルで開く] コンテキスト メニュー コマンドを使用して、フォルダーから新しいターミナルを開くことができます。
  • ターミナル パネルを切り替えるには、⌃` (Windows, Linux Ctrl+`) キーボード ショートカットを使用します。
  • 新しいターミナルを作成するには、⌃⇧` (Windows, Linux Ctrl+Shift+`) キーボード ショートカットを使用します。

VS Code のターミナルには、コマンドの左側とスクロールバーの装飾でコマンドが実行された場所を追跡する、シェル統合と呼ばれる追加機能があります。

The integrated terminal can run commands such as mkdir and git just like a standalone terminal. VS Code's terminal has additional functionality called shell integration that tracks where commands are run with decorations on the left of a command and in the scrollbar.

注: VS Code の外部で作業したい場合は、⇧⌘C (Windows, Linux Ctrl+Shift+C) キーボード ショートカットで外部ターミナルを開きます。

ターミナル シェル

統合ターミナルは、マシンにインストールされているさまざまなシェルを使用でき、デフォルトはシステムのデフォルトから取得されます。シェルは検出され、ターミナル プロファイルのドロップダウンに表示されます。

A detected profile can be chosen in the dropdown next to the new terminal button. Some examples on Windows include PowerShell, Command Prompt, Git Bash and WSL

ターミナル シェルの設定の詳細については、ターミナル プロファイルの記事を参照してください。

ターミナルの管理

ターミナル タブの UI はターミナル ビューの右側にあります。各ターミナルには、名前、アイコン、色、グループの装飾 (もしあれば) を含むエントリがあります。

Activating the Launch Profile button will show all detected and manually configured profiles

ターミナル インスタンスを追加するには、[ターミナル] パネルの右上にある + アイコンを選択するか、ターミナルのドロップダウンからプロファイルを選択するか、⌃⇧` (Windows, Linux Ctrl+Shift+`) コマンドをトリガーします。このアクションにより、そのターミナルに関連付けられたタブ リストに別のエントリが作成されます。

ターミナル インスタンスを削除するには、タブにカーソルを合わせて [ゴミ箱] ボタンを選択するか、タブ項目を選択して Delete を押すか、[ターミナル: アクティブなターミナル インスタンスを強制終了する] コマンドを使用するか、右クリックのコンテキスト メニューから行います。

ターミナル グループ間を移動するには、フォーカスを次に移す ⇧⌘] (Windows, Linux Ctrl+PageDown) およびフォーカスを前に移す ⇧⌘[ (Windows, Linux Ctrl+PageUp) を使用します。

ターミナルのステータスが変更されると、タブ ラベルのターミナル タイトルの右側にアイコンが表示されることがあります。例としては、ベル (macOS) や、タスクの場合はエラーがない場合はチェック マーク、そうでない場合は X が表示されます。アイコンにカーソルを合わせると、アクションを含む可能性のあるステータス情報が表示されます。

グループ (分割ペイン)

複数のターミナルを並べて配置し、ターミナルを分割してグループを作成します。

  • 右側のターミナル リストのエントリにカーソルを合わせ、インラインの分割ボタンを選択します。
  • コンテキスト メニューを右クリックし、[分割] メニュー オプションを選択します。
  • タブ、+ ボタン、またはターミナル パネルの単一タブを Alt キーを押しながらクリックします。
  • ⌘\ (Windows, Linux Ctrl+Shift+5) コマンドをトリガーします。

ヒント: 新しいターミナルの作業ディレクトリは、terminal.integrated.splitCwd設定に依存します。

グループ内のターミナル間を移動するには、前のペインにフォーカスを移す ⌥⌘← (Windows, Linux Alt+Left)、または次のペインにフォーカスを移す ⌥⌘→ (Windows, Linux Alt+Right) を使用します。

リスト内のタブをドラッグ アンド ドロップすると、それらが再配置されます。タブをメインのターミナル領域にドラッグすると、ターミナルをあるグループから別のグループに移動できます。

ターミナルを独自のグループに移動するには、コマンド パレットまたは右クリックのコンテキスト メニューから [ターミナル: ターミナルの分割を解除] コマンドを使用します。

エディター領域のターミナル

[ターミナル: エディター領域に新しいターミナルを作成] コマンド、[ターミナル: 横のエディター領域に新しいターミナルを作成] コマンド、またはターミナル ビューからエディター領域にターミナルをドラッグすることで、エディター領域にターミナル (ターミナル エディター) を開くことができます。ターミナル エディターは、通常のエディター タブのように表示されます。

Terminal editors are presented like regular text file tabs

エディター グループのレイアウト システムを使用して、ターミナル エディターをどちらかの側に配置したり、複数の次元に配置したりできます。たとえば、ファイル エディターの右側に PowerShell と WSL ターミナルを積み重ねることができます。

Terminal editors are can be laid out using the editor group layout system, for example 2 terminals could sit to the right of a text editor

terminal.integrated.defaultLocation 設定で、デフォルトのターミナル位置を view または editor 領域に変更できます。

新しいウィンドウのターミナル

新しいウィンドウでターミナルを開くには:

  1. 複数のターミナルがある場合はターミナル タブを右クリックし、ターミナルが 1 つしか開いていない場合はタブを左クリックします。

  2. [ターミナルを新しいウィンドウに移動] を選択します。これにより、ターミナル エディターが独自の VS Code ウィンドウで開きます。

    Screenshot showing a terminal in its own separate window.

バッファーの移動

ターミナル内のコンテンツはバッファーと呼ばれ、下部のビューポートのすぐ上のセクションは「スクロールバック」と呼ばれます。保持されるスクロールバックの量は terminal.integrated.scrollback 設定によって決まり、デフォルトは 1000 行です。

ターミナル バッファー内を移動するために利用できるさまざまなコマンドがあります。

  • 1 行上にスクロール - ⌥⌘PageUp (Windows Ctrl+Alt+PageUp, Linux Ctrl+Shift+Up)
  • 1 行下にスクロール - ⌥⌘PageDown (Windows Ctrl+Alt+PageDown, Linux Ctrl+Shift+Down)
  • 1 ページ上にスクロール - PageUp (Windows, Linux Shift+PageUp)
  • 1 ページ下にスクロール - PageDown (Windows, Linux Shift+PageDown)
  • 一番上にスクロール - ⌘Home (Windows Ctrl+Home, Linux Shift+Home)
  • 一番下にスクロール - ⌘End (Windows Ctrl+End, Linux Shift+End)

コマンド ナビゲーションも利用できます (シェル統合を参照)。

  • 前のコマンドにスクロール - ⌘↑ (Windows, Linux Ctrl+Up)
  • 次のコマンドにスクロール - ⌘↓ (Windows, Linux Ctrl+Down)

スクロールは瞬時に行われますが、terminal.integrated.smoothScrolling 設定で短い時間アニメーションするように設定できます。

ターミナルは、エディター統合や拡張機能が提供するリンク ハンドラーまで備えた高度なリンク検出機能を備えています。リンクにカーソルを合わせると下線が表示され、Ctrl/Cmd キーを押しながらクリックします。

これらの組み込みリンク ハンドラーは、次の優先順位で使用されます。

  • URI/URL: https://vscode.dokyumento.jpvscode://path/to/filefile://path/to/file のような URI に見えるリンクは、プロトコルの標準ハンドラーを使用して開きます。たとえば、https リンクはブラウザーを開きます。

    Opening a URI link will open it in the system browser

  • ファイル リンク: システム上に存在することが確認されたファイルへのリンク。これらは新しいエディター タブでファイルを開き、file:1:2file:line 1, column 2 のような多くの一般的な行/列形式をサポートします。

    Activating a file link will open it in an editor

  • フォルダー リンク: フォルダーへのリンクはファイル リンクに似ていますが、そのフォルダーで新しい VS Code ウィンドウを開きます。

    Activating a folder link will open it in a new window

  • 単語リンク: terminal.integrated.wordSeparators 設定を使用するフォールバック リンク タイプ。この設定は単語の境界を定義し、ほぼすべてのテキストを単語にします。単語リンクをアクティブにすると、ワークスペースでその単語を検索します。結果が 1 つの場合はそれを開き、それ以外の場合は検索結果を表示します。単語リンクは「信頼性が低い」と見なされ、Ctrl/Cmd キーを押さない限り下線やツールチップは表示されません。また、行と列のサフィックスのサポートも限定的です。

    Activating a word link 'terminal:15' will open a Quick Pick searching the workspace for all files containing 'terminal', choosing an option will open the file at line 15

[検出されたリンクを開く] コマンド (⇧⌘G (Windows, Linux Ctrl+Shift+G)) を使用して、キーボードからリンクにアクセスできます。

Open Detected Link opens a quick pick with all links in the viewport, split into categories

ヒント: 高遅延のリモート環境などでリンクの検証がパフォーマンスの問題を引き起こす場合は、terminal.integrated.enableFileLinks 設定で無効にしてください。

拡張機能はリンク プロバイダーを提供でき、これにより拡張機能はクリックされたときの動作を定義できます。この例として、GitLens 拡張機能が Git ブランチのリンクを検出する場合があります。

When GitLens is installed, hovering a branch name will provide custom behavior to open the branch in the UI

キーボードのアクセシビリティ

リンクは、リンクの種類に基づいてリンクを開くいくつかのコマンドを通じてキーボードでアクセスできます。

  • ターミナル: 最後のローカル ファイル リンクを開く - 最新のローカル ファイル リンクを開きます。デフォルトのキーボード ショートカットはありません。
  • ターミナル: 最後の URL リンクを開く - 最新の URI/URL リンクを開きます。デフォルトのキーボード ショートカットはありません。
  • ターミナル: 検出されたリンクを開く... - 単語リンクを含む、検出されたすべてのリンクを含む検索可能なクイック ピックを開きます。デフォルトのキーボード ショートカットは Ctrl/Cmd+Shift+O で、これは [エディターのシンボルに移動] キーボード ショートカットと同じです。

コピーと貼り付け

コピーと貼り付けのキーボード ショートカットはプラットフォームの標準に従います。

  • Linux: Ctrl+Shift+CCtrl+Shift+V。選択範囲の貼り付けは Shift+Insert で利用可能です。
  • macOS: Cmd+CCmd+V
  • Windows: Ctrl+CCtrl+V

terminal.integrated.copyOnSelection が有効な場合、選択時にコピーが自動的に行われます。

デフォルトでは、複数行を貼り付けるときに警告が表示されますが、これは terminal.integrated.enableMultiLinePasteWarning 設定で無効にできます。これは、シェルが「ブラケット貼り付けモード」をサポートしていない場合にのみ行われます。そのモードが有効な場合、シェルは複数行の貼り付けを処理できることを示しています。

マウスの使用

右クリックの動作

右クリックの動作はプラットフォームによって異なります。

  • Linux: コンテキスト メニューを表示します。
  • macOS: カーソル下の単語を選択し、コンテキスト メニューを表示します。
  • Windows: 選択範囲がある場合はコピーして選択を解除し、ない場合は貼り付けます。

これは terminal.integrated.rightClickBehavior 設定を使用して設定できます。オプションは次のとおりです。

  • default - コンテキスト メニューを表示します。
  • copyPaste - 選択範囲がある場合はコピーし、ない場合は貼り付けます。
  • paste - 右クリックで貼り付けます。
  • selectWord - カーソル下の単語を選択し、コンテキスト メニューを表示します。
  • nothing - 何もせず、イベントをターミナルに渡します。

矩形選択

Alt キーを押しながら左クリックでドラッグすると、通常の行選択の代わりに、ターミナル内でテキストの矩形領域を選択できます。

Alt でカーソルを再配置

Alt キーを押しながら左クリックすると、カーソルがマウスの下に再配置されます。これは矢印キーの入力をシミュレートすることで機能するため、一部のシェルやプログラムでは確実に動作しない場合があります。この機能は terminal.integrated.altClickMovesCursor 設定で無効にできます。

マウス イベント モード

ターミナルで実行されているアプリケーションが Vim のマウス モードなどのマウス イベント モードをオンにすると、マウス操作はターミナルではなくアプリケーションに送信されます。これは、クリックやドラッグでは選択範囲が作成されなくなることを意味します。Windows と Linux では Alt キーを押すことで強制的にターミナル選択ができます。macOS では Option キーでも同様のことができますが、最初に terminal.integrated.macOptionClickForcesSelection 設定を有効にする必要があります。

検索

統合ターミナルには、⌘F (Windows, Linux Ctrl+F) でトリガーできる検索機能があります。

Find in the terminal will highlight all text matching the query

ヒント: シェルをスキップするコマンドから workbench.action.terminal.focusFind コマンドを削除することで、Ctrl+F をシェルに送信できます。

選択したテキストを実行

runSelectedText コマンドを使用するには、エディターでテキストを選択し、コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) から [ターミナル: アクティブなターミナルで選択したテキストを実行] コマンドを実行します。ターミナルは選択したテキストを実行しようとします。アクティブなエディターでテキストが選択されていない場合、カーソルがある行全体がターミナルで実行されます。

ヒント: workbench.action.terminal.runActiveFile コマンドを使用してアクティブなファイルを実行することもできます。

ターミナルの最大化

ターミナル ビューは、上向きシェブロン アイコンの付いたパネル サイズ最大化ボタンをクリックすることで最大化できます。これにより、一時的にエディターが非表示になり、パネルが最大化されます。これは、大量の出力に一時的に集中するのに役立ちます。一部の開発者は、新しいウィンドウを開き、パネルを最大化し、サイド バーを非表示にすることで、VS Code をスタンドアロン ターミナルとして使用します。

パネルを最大化できるのは、その配置オプションが中央に設定されている場合のみであることに注意してください。

すべて選択

[ターミナル: すべて選択] コマンドがあり、macOS では Cmd+A にバインドされていますが、シェルのホットキーと競合する可能性があるため、Windows と Linux ではデフォルトのキーボード ショートカットはありません。Ctrl+A を使用してすべてを選択するには、このカスタム キーボード ショートカットを追加します。

{
  "key": "ctrl+a",
  "command": "workbench.action.terminal.selectAll",
  "when": "terminalFocus && !isMac"
},

ファイル パスのドラッグ アンド ドロップ

ファイルをターミナルにドラッグすると、アクティブなシェルに合わせてエスケープされたパスがターミナルに入力されます。

タスクによるターミナルの自動化

タスク機能を使用して、ターミナルの起動を自動化できます。たとえば、次の .vscode/tasks.json ファイルは、ウィンドウの開始時に単一のターミナル グループでコマンド プロンプトと PowerShell ターミナルを起動します。

{
  "version": "2.0.0",
  "presentation": {
    "echo": false,
    "reveal": "always",
    "focus": false,
    "panel": "dedicated",
    "showReuseMessage": true
  },
  "tasks": [
    {
      "label": "Create terminals",
      "dependsOn": [
        "First",
        "Second"
      ],
      // Mark as the default build task so cmd/ctrl+shift+b will create them
      "group": {
        "kind": "build",
        "isDefault": true
      },
      // Try start the task on folder open
      "runOptions": {
        "runOn": "folderOpen"
      }
    },
    {
      // The name that shows up in terminal tab
      "label": "First",
      // The task will launch a shell
      "type": "shell",
      "command": "",
      // Set the shell type
      "options": {
        "shell": {
          "executable": "cmd.exe",
          "args": []
        }
      },
      // Mark as a background task to avoid the spinner animation on the terminal tab
      "isBackground": true,
      "problemMatcher": [],
      // Create the tasks in a terminal group
      "presentation": {
        "group": "my-group"
      }
    },
    {
      "label": "Second",
      "type": "shell",
      "command": "",
      "options": {
        "shell": {
          "executable": "pwsh.exe",
          "args": []
        }
      },
      "isBackground": true,
      "problemMatcher": [],
      "presentation": {
        "group": "my-group"
      }
    }
  ]
}

このファイルは、他の開発者と共有するためにリポジトリにコミットしたり、workbench.action.tasks.openUserTasks コマンドを介してユーザー タスクとして作成したりできます。

作業ディレクトリ

デフォルトでは、ターミナルはエクスプローラーで開かれているフォルダーで開きます。terminal.integrated.cwd 設定を使用すると、代わりに開くカスタム パスを指定できます。

{
  "terminal.integrated.cwd": "/home/user"
}

Windows の分割ターミナルは、親ターミナルが開始したディレクトリで開始されます。macOS と Linux では、分割ターミナルは親ターミナルの現在の作業ディレクトリを継承します。この動作は terminal.integrated.splitCwd 設定を使用して変更できます。

{
  "terminal.integrated.splitCwd": "workspaceRoot"
}

Terminal Here のような、より多くのオプションを提供する拡張機能も利用できます。

固定寸法のターミナル

[ターミナル: 固定寸法を設定] コマンドを使用すると、ターミナルとその背後にある擬似ターミナルが使用する列と行の数を変更できます。これにより、必要に応じてスクロール バーが追加されますが、これは不快な UX につながる可能性があり、一般的には推奨されません。しかし、特に Windows で、ページング ツールが利用できない場合にログや長い行を読むための一般的な要望です。

ターミナル タブを右クリックして [コンテンツの幅にサイズを切り替え] (⌥Z (Windows, Linux Alt+Z)) を選択して、ターミナルの列数をターミナル内で最も長い折り返し行にリサイズすることもできます。

ターミナルでの GitHub Copilot

GitHub Copilot にアクセスできる場合は、それを使用してターミナル コマンドやシェル スクリプトに関する AI による支援を受けることができます。ターミナルで Copilot を使用するにはいくつかの方法があります。

ターミナルのインライン チャット

ターミナルで直接インライン チャットを開始して、シェル コマンドのヘルプを得ます。

  1. ターミナルを開きます (⌃` (Windows, Linux Ctrl+`))
  2. ⌘I (Windows, Linux Ctrl+I) を押すか、コマンド パレットから [ターミナルのインライン チャット] コマンドを実行します。
  3. 次のような質問やリクエストを自然言語で入力します。
    • 「このディレクトリで一番大きいファイルを見つけるにはどうすればいいですか?」
    • 「最後の git コミットを取り消す方法を教えてください」
    • 「ログファイルを分析するための bash スクリプトを作成してください」

Terminal inline chat helps you quickly get and run shell commands

Copilot が応答を提供したら、[実行] を選択してコマンドを直接実行するか、[挿入] を選択してさらに編集するためにターミナルに追加できます。

ターミナルで GitHub Copilot を使用する方法の詳細については、ターミナルのインライン チャットの使用を参照してください。

ターミナル チャット参加者

チャット ビューで、質問モードで専用の @terminal チャット参加者を使用します。

  1. チャット ビューを開きます (⌃⌘I (Windows, Linux Ctrl+Alt+I))
  2. 質問を @terminal で始めて、ターミナル参加者に向けます。
  3. ターミナル コマンド、シェル スクリプト、またはターミナル出力の説明について質問します。

  • @terminal このワークスペースで一番大きい 5 つのファイルをリストしてください
  • @terminal /explain top シェル コマンド
  • @terminal パターンを再帰的に grep する方法

チャットでターミナルのコンテキストを参照

チャットのプロンプトにターミナル情報をコンテキストとして含めることができます。

  • #terminalSelection を使用して、ターミナルから選択したテキストをチャット プロンプトに追加します。
  • #terminalLastCommand を使用して、ターミナルで最後に実行したコマンドを含めます。

次のステップ

このドキュメントでは、ターミナルの基本について説明しました。さらに詳しく知るには、次を読み進めてください。

  • ターミナルのインライン チャット - ターミナルで直接 AI による提案を受けられます。
  • タスク - タスクを使用すると、外部ツールと統合し、ターミナルを多用できます。
  • Mastering VS Code's Terminal - ターミナルのパワー ユーザー向けのヒントが満載の外部ブログです。
  • VS Code 内のキーボード ショートカットを参照して、ターミナル コマンドを調べてください ([基本設定: キーボード ショートカットを開く]、次に「terminal」で検索)。

よくある質問

ターミナルの起動に問題があります

この種の問題については、専用のトラブルシューティング ガイドがあります。

管理者ターミナルを作成するにはどうすればよいですか?

統合ターミナル シェルは VS Code の権限で実行されています。昇格された (管理者) または異なる権限でシェル コマンドを実行する必要がある場合は、ターミナル内で runas.exe などのプラットフォーム ユーティリティを使用してください。

ターミナル プロファイルによるターミナルのカスタマイズの詳細については、プロファイルの設定を参照してください。

エクスプローラーの [統合ターミナルで開く] コマンドにキーボード ショートカットを追加できますか?

[統合ターミナルで開く] コンテキスト メニュー コマンドを使用して、エクスプローラーから特定のフォルダーの新しいターミナルを開くことができます。

A folder selected in the Explorer displaying the context menu with the Open in Integrated Terminal command

デフォルトでは、[統合ターミナルで開く] に関連付けられたキーボード ショートカットはありませんが、キーボード ショートカット エディター (⌘K ⌘S (Windows, Linux Ctrl+K Ctrl+S)) を使用して、独自のショートカットを keybindings.json に追加できます。

以下の keybindings.json の例では、openInTerminal にキーボード ショートカット Ctrl+T を追加しています。

{
  "key": "ctrl+t",
  "command": "openInTerminal",
  "when": "filesExplorerFocus"
}

統合ターミナルを起動すると、なぜ nvm がプレフィックス オプションについて文句を言うのですか?

nvm (Node Version Manager) ユーザーは、VS Code の統合ターミナル内で初めてこのエラーをよく見かけます。

nvm is not compatible with the npm config "prefix" option: currently set to "/usr/local"
Run `npm config delete prefix` or `nvm use --delete-prefix v8.9.1 --silent` to unset it

これは主に macOS の問題であり、外部ターミナルでは発生しません。この典型的な理由は次のとおりです。

  • npm が、パスのどこかにある別の node インスタンス (/usr/local/bin/npm など) を使用してグローバルにインストールされた。
  • 開発ツールを $PATH に追加するために、VS Code は起動時に bash ログイン シェルを起動します。これは、~/.bash_profile がすでに実行されており、統合ターミナルが起動すると、別のログイン シェルが実行され、予期しない方法で $PATH が並べ替えられる可能性があることを意味します。

この問題を解決するには、古い npm がどこにインストールされているかを突き止め、それと古い node_modules の両方を削除する必要があります。nvm の初期化スクリプトを見つけ、それが実行される前に which npm を実行します。これにより、新しいターミナルを起動したときにパスが出力されるはずです。

npm へのパスがわかったら、次のようなコマンドを実行してシンボリック リンクを解決することで、古い node_modules を見つけます。

ls -la /usr/local/bin | grep "np[mx]"

これにより、最後に解決されたパスが得られます。

... npm -> ../lib/node_modules/npm/bin/npm-cli.js
... npx -> ../lib/node_modules/npm/bin/npx-cli.js

そこからファイルを削除し、VS Code を再起動すると問題が解決するはずです。

rm /usr/local/bin/npm /usr/local/lib/node_modules/npm/bin/npm-cli.js
rm /usr/local/bin/npx /usr/local/lib/node_modules/npm/bin/npx-cli.js

ターミナルの分割ペインのサイズを変更すると、なぜ macOS は「ディン」という音を出すのですか?

キーボード ショートカット ⌃⌘← と ⌃⌘→ は、ターミナルで個々の分割ペインのサイズを変更するためのデフォルトです。これらは機能しますが、Chromium の問題により、システムの「無効なキー」サウンドも再生されます。推奨される回避策は、ターミナルでこれを実行して、これらのキーボード ショートカットに対して macOS に何もしないように指示することです。

mkdir -p ~/Library/KeyBindings
cat > ~/Library/KeyBindings/DefaultKeyBinding.dict <<EOF
{
  "@^\UF700" = "noop:";
  "@^\UF701" = "noop:";
  "@^\UF702" = "noop:";
  "@^\UF703" = "noop:";
  "@~^\UF700" = "noop:";
  "@~^\UF701" = "noop:";
  "@~^\UF702" = "noop:";
  "@~^\UF703" = "noop:";
}
EOF

ターミナルのレンダリングに問題があります。どうすればよいですか?

デフォルトでは、統合ターミナルはほとんどのマシンで GPU アクセラレーションを使用してレンダリングします。通常、レンダリングの問題がある場合、それはハードウェア/OS/ドライバーの何かが GPU レンダラーとうまく連携していないことが原因です。最初に試すべきことは、GPU アクセラレーションを無効にすることです。これにより、レンダリング速度は低下しますが、より信頼性の高い DOM ベースのレンダリングになります。

{
  "terminal.integrated.gpuAcceleration": "off"
}

詳細については、GPU アクセラレーションのセクションを参照してください。

何かを貼り付けると 1~ または [201~ が表示されます

これは通常、ターミナル内で実行されているプログラム/シェルが「ブラケット貼り付けモード」をオンにするように要求しましたが、何かがそれを正しくサポートしていないことを意味します。これを回避するには、printf "\e[?2004l" を実行してそのセッションで無効にするか、~/.inputrc ファイルに次を追加します。

set enable-bracketed-paste off

または、この設定でブラケット貼り付けモードをオフにすることで、シェルの要求を無視するように強制することもできます。

{
  "terminal.integrated.ignoreBracketedPasteMode": true
}

zsh で Ctrl+A、Ctrl+R が ^A、^R を出力する

これは、初期化スクリプトで $EDITOR または $VISUALvi/vim に設定したために、zsh が Emacs モードではなく Vim モードになっている場合に発生する可能性があります。

これを回避するには、2 つのオプションがあります。

  • $EDITORvi(m) に設定しないようにします。ただし、Git エディターを機能させたい場合は、これは選択肢になりません。
  • 初期化スクリプトに bindkey -e を追加して、Emacs を明示的に設定します。

macOS の組み込みターミナルのように、Cmd+. を Ctrl+C にマッピングするにはどうすればよいですか?

macOS のデフォルト ターミナルは Cmd+. を使用して Ctrl+C と同じ動作をします。VS Code でこの動作を得るには、このカスタム キーボード ショートカットを追加します。

{
  "key": "cmd+.",
  "command": "workbench.action.terminal.sendSequence",
  "when": "terminalFocus",
  "args": { "text": "\u0003" }
}

ターミナルの色が正しくないのはなぜですか?

デフォルトで有効にしているアクセシビリティ機能の 1 つは、前景色テキストに対して少なくとも 4.5 の最小コントラスト比が満たされていることを保証することです。この機能により、使用されているシェルやテーマに関係なくテキストが読みやすくなりますが、そうでなければ不可能です。この機能を無効にするには、次のように設定します。

"terminal.integrated.minimumContrastRatio": 1

詳細については、最小コントラスト比のセクションを参照してください。