に参加して、VS Code の AI 支援開発について学びましょう。

ターミナルの基本

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. ⌃⇧⌥`(Windows、Linux Ctrl+Shift+Alt+`を使用します。
  2. 複数のターミナルがある場合はターミナルタブを右クリックし、単一のターミナルしか開いていない場合はタブを左クリックします。次に、ターミナルを新しいウィンドウに移動を選択します。
  3. いくつかの異なるメニューで利用できる新しいターミナルウィンドウエントリを選択します。

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/file、またはfile://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

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

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を押しながら左クリックすると、カーソルがマウスの下に再配置されます。これは矢印キー入力をシミュレートすることで機能しますが、一部のシェルやプログラムでは reliably に動作しない場合があります。この機能は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 shell command
  • @terminal パターンを再帰的にgrepする方法

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

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

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

次のステップ

このドキュメントでは、ターミナルの基本について説明しました。詳細については、以下を参照してください。

  • ターミナルインラインチャット - ターミナル内でAIによる提案を提供します。
  • タスク - タスクを使用すると、外部ツールと統合し、ターミナルを大いに活用できます。
  • VS Codeのターミナルをマスターする - ターミナルのパワーユーザー向けのヒントが豊富に記載された外部ブログ。
  • VS Code内のキーボードショートカットをブラウズしてターミナルコマンドを探索します(設定: キーボードショートカットを開くで「ターミナル」を検索)。

よくある質問

ターミナルを起動できません

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

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

統合ターミナルシェルは、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がprefixオプションについて不満を言うのはなぜですか?

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エディターを機能させたい場合は、これはオプションではありません。
  • 明示的にEmacsを設定するために、初期化スクリプトにbindkey -eを追加します。

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

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

© . This site is unofficial and not affiliated with Microsoft.