terminal - 新しい Windows ターミナルと元の Windows コンソール ホストがすべて同じ場所にあります。

(The new Windows Terminal and the original Windows console host, all in the same place!)

Created at: 2017-08-12 02:38:22
Language: C++
License: MIT

ターミナルロゴ

Windows ターミナル、コンソール、およびコマンド ライン リポジトリへようこそ

このリポジトリには、次のソース コードが含まれています。

関連するリポジトリは次のとおりです。

Windows ターミナルのインストールと実行

: Windows ターミナルには Windows 10 2004 (ビルド 19041) 以降が必要です。

マイクロソフトストア [推奨]

マイクロソフトストアからWindowsターミナルをインストールします。 これにより、新しいビルドをリリースするときに常に最新バージョンを使用できます 自動アップグレード付き。

これが私たちの好ましい方法です。

その他のインストール方法

GitHub経由

マイクロソフトストアからWindowsターミナルをインストールできないユーザーの場合、 リリースされたビルドは、このリポジトリのリリースから手動でダウンロードできます ページを参照してください

からファイルをダウンロードします [アセット] セクション。アプリをインストールするには、ファイルをダブルクリックするだけで、アプリインストーラーが自動的に実行されます。もしそうなら 何らかの理由で失敗する場合は、PowerShell プロンプトで次のコマンドを試すことができます。

Microsoft.WindowsTerminal_<versionNumber>.msixbundle
.msixbundle

# NOTE: If you are using PowerShell 7+, please run
# Import-Module Appx -UseWindowsPowerShell
# before using Add-AppxPackage.

Add-AppxPackage Microsoft.WindowsTerminal_<versionNumber>.msixbundle

: ターミナルを手動でインストールする場合:

  • VC++ v14デスクトップフレームワークパッケージをインストールする必要がある場合があります。
    これは、Windows 10の古いビルドでのみ、フレームワークパッケージの欠落に関するエラーが発生した場合にのみ必要です。
  • 新しいビルドがリリースされてもターミナルは自動更新されないため、 最新のターミナルリリースを定期的にインストールして、最新のものをすべて受け取る 修正と改善!

WindowsパッケージマネージャーCLI(別名winget)経由

WinGetユーザーはダウンロードしてインストールできます パッケージをインストールすることによる最新のターミナルリリース:

Microsoft.WindowsTerminal

winget install --id Microsoft.WindowsTerminal -e

チョコレート経由(非公式)

チョコレートユーザーは最新のものをダウンロードしてインストールできます パッケージをインストールすることによるターミナルリリース:

microsoft-windows-terminal

choco install microsoft-windows-terminal

チョコレートを使用してWindowsターミナルをアップグレードするには、次のコマンドを実行します。

choco upgrade microsoft-windows-terminal

パッケージのインストール/アップグレード時に問題が発生した場合は、Windowsターミナルパッケージにアクセスしてください ページを開き、チョコレートのトリアージプロセスに従います

スクープ経由(非公式)

スクープユーザーは最新のターミナルをダウンロードしてインストールできます パッケージをインストールしてリリースします。

windows-terminal

scoop bucket add extras
scoop install windows-terminal

スクープを使用してWindowsターミナルを更新するには、次のコマンドを実行します。

scoop update windows-terminal

パッケージのインストール/更新時に問題が発生した場合は、検索してください または問題について同じことを報告します スクープエクストラバケットのページ リポジトリ。


Windows ターミナル ロードマップ

Windowsターミナルの計画はここで説明されています プロジェクトが進むにつれて更新されます。

プロジェクトのビルド ステータス

プロジェクト ビルドステータス
ターミナル ターミナルビルドステータス
カラーツール カラーツールのビルドステータス

ターミナルとコンソールの概要

に飛び込む前に、数分かけて以下の概要を確認してください。 コード:

ウィンドウズターミナル

Windowsターミナルは、新しく、モダンで、機能が豊富で、生産性の高いターミナルアプリケーションです コマンド ライン ユーザー用。それは最も頻繁に機能の多くを含みます タブのサポートを含むWindowsコマンドラインコミュニティからの要求、リッチ テキスト、グローバリゼーション、構成可能性、テーマとスタイルなど。

ターミナルはまた、それが残ることを保証するために私たちの目標と対策を満たす必要があります 高速で効率的で、大量のメモリや電力を消費しません。

Windows コンソール ホスト

Windows コンソール ホストは、Windows の元のコマンド ライン ユーザーです。 経験。また、WindowsのコマンドラインインフラストラクチャとWindowsもホストしています。 コンソールAPIサーバ、入力エンジン、レンダリングエンジン、ユーザ設定などザ このリポジトリ内のコンソール ホスト コードは、Windows 自体のビルド元となる実際のソースです。

conhost.exe
conhost.exe

2014年にWindowsコマンドラインの所有権を取得して以来、チームは 背景の透明度を含むコンソールのいくつかの新機能、 ラインベースの選択、ANSI /仮想端末のサポート シーケンス24 ビット 色疑似コンソール ("コンティ")、 もっと。

ただし、Windows コンソールの主な目標は後方を維持することであるため、 互換性、コミュニティに多くの機能を追加できませんでした (そしてチームは)タブを含めて過去数年間望んでいました、 ユニコードテキスト、および絵文字。

これらの制限により、新しいWindowsターミナルを作成しました。

一般的なコマンドラインの進化についてもっと読むことができます。 特にこの一連のブログのWindowsコマンドライン コマンドラインチームのブログに投稿します。

共有コンポーネント

Windowsコンソールをオーバーホールしながら、コードベースを大幅にモダナイズしました。 論理エンティティをモジュールとクラスに明確に分離し、いくつかを導入しました 主要な拡張性ポイントは、いくつかの古い自家製コレクションを置き換え、 より安全で効率的なSTLを備えたコンテナ コンテナ、 マイクロソフトのWindows実装を使用してコードをより簡単かつ安全にしました ライブラリ - WILです。

このオーバーホールにより、コンソールの主要コンポーネントのいくつかが利用可能になりました。 Windows上の任意のターミナル実装で再利用できます。これらのコンポーネントには、 新しいDirectWriteベースのテキストレイアウトおよびレンダリングエンジン、可能なテキストバッファ UTF-16とUTF-8の両方、VTパーサー/エミッターなどを保存します。

新しい Windows ターミナルの作成

新しいWindowsターミナルアプリケーションの計画を開始したとき、私たちは調査し、 いくつかのアプローチとテクノロジースタックを評価しました。私たちは最終的にそれを決定しました 私たちの目標は、C ++コードベースへの投資を継続することで最もよく達成されます。 これにより、前述の近代化されたもののいくつかを再利用できます 既存のコンソールと新しいターミナルの両方のコンポーネント。さらに、 これにより、ターミナルのコア自体の多くを次のように構築できることに気づきました。 他のユーザーが独自のアプリケーションに組み込むことができる再利用可能な UI コントロール。

この作業の結果は、このリポジトリ内に含まれ、 Windows ターミナル アプリケーションは、Microsoft Store からダウンロードすることも、このリポジトリから直接ダウンロードすることもできます。 リリース


リソース

Windowsターミナルの詳細については、これらのいくつかを見つけることができます 有用で興味深いリソース:


FAQ

新しいターミナルを構築して実行しましたが、古いコンソールのように見えます

原因: Visual Studio で誤ったソリューションを起動しています。

解決策:プロジェクトをビルドしてデプロイしていることを確認してください Visual Studio.

CascadiaPackage

:ローカルで構築された、クラシックです Windows のコマンド ライン インフラストラクチャをホストする Windows コンソール。開くコンソール は、Windows ターミナルがコマンド ラインに接続して通信するために使用されます。 アプリケーション(ConPty経由)。

OpenConsole.exe
conhost.exe


ドキュメンテーション

すべてのプロジェクト文書は aka.ms/terminal-docs にあります。ご希望の場合 ドキュメントに貢献するには、Windowsでプルリクエストを送信してください ターミナル ドキュメント リポジトリ


貢献

私たちは、私たちの素晴らしいコミュニティであるあなたと協力して、構築し、 ウィンドウズターミナルを強化します!

機能/修正の作業を開始する前に、寄稿者の のガイド 無駄な作業や重複した作業を避けるのに役立ちます。

チームとのコミュニケーション

チームと通信する最も簡単な方法は、GitHubの問題を使用することです。

新しい問題、機能要求、提案を提出してください。 新しい課題を作成する前に、同様のオープン/クローズ済みの既存の問題。

問題に当たらないと思われる質問をしたい場合 (まだ)、ツイッターで私たちに連絡してください:

  • ケイラシナモン、プログラムマネージャー:@cinnamon_msft
  • ダスティン・ハウエット、エンジニアリングリード:@dhowett
  • マイク・グリーゼ、シニア開発者:@zadjii
  • カルロス・サモラ, 開発者: @cazamor_msft
  • パンカジ・ボジワニ、開発者
  • Leonard Hecker, Developer: @LeonardHecker

Developer Guidance

Prerequisites

Building the Code

This repository uses git submodules for some of its dependencies. To make sure submodules are restored or updated, be sure to run the following prior to building:

git submodule update --init --recursive

OpenConsole.sln may be built from within Visual Studio or from the command-line using a set of convenience scripts & tools in the /tools directory:

Building in PowerShell

Import-Module .\tools\OpenConsole.psm1
Set-MsBuildDevEnvironment
Invoke-OpenConsoleBuild

Building in Cmd

.\tools\razzle.cmd
bcz

Running & Debugging

VSでWindowsターミナルをデバッグするには、右クリックします( ソリューション エクスプローラー) をクリックし、プロパティに移動します。[デバッグ] メニューで、[アプリケーション] を変更します。 プロセス」および「バックグラウンドタスクプロセス」を「ネイティブのみ」に変更します。

CascadiaPackage

その後、を押してターミナルプロジェクトをビルドおよびデバッグできるはずです。必ず "x64" または "x86" プラットフォームを選択してください - ターミナルは「任意のCPU」用にビルドされません(ターミナルはC ++アプリケーションであるため、 C#ではありません)。F5

👉を実行してターミナルを直接起動することはできません。 WindowsTerminal.exe. 理由の詳細については、#926#4043を参照してください。

コーディング ガイダンス

コーディングプラクティスについては、以下の簡単なドキュメントを確認してください。

👉これらのドキュメントに欠けているものを見つけた場合は、お気軽に貢献してください リポジトリ内の任意のドキュメントファイル(または新しいものを書く) もの!

これは、人々に何を提供する必要があるかを学ぶために進行中の作業です。 私たちのプロジェクトへの効果的な貢献者になるため。


行動規範

このプロジェクトは、マイクロソフトのオープンソースコードを採用しています 実施。詳細については、行動規範を参照してください。 FAQまたは連絡先 opencode@microsoft.com 追加の質問またはコメント。