Xterm.js: ANSIカラーコードが正しくレンダリングされない

作成日 2017年08月20日  ·  4コメント  ·  ソース: xtermjs/xterm.js


デフォルトの背景ANSI色は、Windows Subsystem for Linux(Windowsのネイティブbashターミナル)では正しくレンダリングされず、出力に青色の背景色が作成されます。

詳細

  • ブラウザとブラウザのバージョン:VSCode組み込み端末とHyper.is端末(最新リリース)
  • OSバージョン:Windows 10

再現する手順

  1. Linux用のWindowsサブシステムの新規再インストール
  2. VSCodeまたはHyper.isでターミナルを開きます
  3. デフォルトのターミナルをbashシェルに設定します(VSCode: "terminal.integrated.shell.windows": "C:\\WINDOWS\\Sysnative\\bash.exe" 、Hyper: shell: 'C:\\Windows\\System32\\bash.exe'
  4. デフォルトの出力色は青色の背景になります

参考までに、プロンプトがデフォルトです。

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

[\033[00m\]はデフォルトにリセットされているはずですが、デフォルトは間違っているようです。 [\033[39m\]も同じ効果が得られます。

デフォルトのWindowsCMDまたはPSを使用しても、同じ効果は再現されません。

問題を示す画像

画像の境界線は、アプリケーションの実際の背景を反映しています。

VSCode:
vscode
ハイパー:
hyper

needs more info typbug

全てのコメント4件

@ christopher-tseを報告していただきありがとうございます。 ここでもう少し情報が必要になると思います。

次の手順に従って、質問された詳細に戻ってください。

  1. プロンプトを、ANSIコードを使用せずに、はるかに単純なものに設定します(例: PS1="\u:\w $ " )。 これにより、典型的な白黒端末が得られるはずです
  2. ターミナルで次のコマンドを実行します( green testで、 greenは実際には緑色です😅):
    echo -e "\033[1;32mgreen\033[0m test"
  3. 結果のスクリーンショットをここに貼り付けます。 あなたが見るべきものはこのようなものです:
    image

最後に、xterm.jsターミナルのdebugオプションをVS Codeでtrueに設定する方法があり、ターミナルログを返送できる場合は、それも非常に役立ちます。 それらは次のようになります。

data: 
[1;32mgreen[0m test
www-data<strong i="21">@e167814701c2</strong>:/mnt/project $  undefined
Terminal.ts:1917 CSI  1;32  m undefined
Terminal.ts:1917 CSI  0  m undefined

PS:使用しているハイパーの特定のバージョンを送信することもできますか? Hyperはまだxterm.jsを統合していません(https://github.com/zeit/hyper/pull/1983)。したがって、これがxterm.jsとhyper.isを使用するソフトウェアの両方で発生する問題である場合は、おそらく次の問題です。 Linuxサブシステム。

cmd.exeに非標準の色がある場合、これは以前に見たことがあります。 これで問題が解決する場合は、 https://github.com/rprichard/winptyの問題です

@Tyriarあなたはお金に

@pariskでは、上記の詳細は必要ないと思いますか? それでもよろしければ、スクリーンショットをいくつか撮っていただければ幸いです。

@ christopher-かっこいいです。アップストリームの問題なので、これを終了します。 詳細は必要ないはずです😃

このページは役に立ちましたか?
0 / 5 - 0 評価