Xterm.js: لا يتم عرض رموز ألوان ANSI بشكل صحيح

تم إنشاؤها على ٢٠ أغسطس ٢٠١٧  ·  4تعليقات  ·  مصدر: xtermjs/xterm.js


لا يتم عرض لون الخلفية الافتراضي ANSI بشكل صحيح على نظام Windows الفرعي لنظام Linux (Native bash terminal لنظام التشغيل Windows) ، مما يؤدي إلى إنشاء لون خلفية أزرق عند عدم وجود أي لون.

تفاصيل

  • إصدار المتصفح والمتصفح: VSCode المدمج المحطة الطرفية و Hyper.is الطرفية (أحدث الإصدارات)
  • إصدار نظام التشغيل: Windows 10

خطوات التكاثر

  1. إعادة تثبيت جديدة لنظام Windows الفرعي لنظام Linux
  2. افتح Terminal في 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\] يعطي نفس التأثير أيضًا.

لا يؤدي استخدام Windows CMD أو PS الافتراضي إلى إنتاج نفس التأثيرات.

الصور تظهر القضية

تعكس الحدود الموجودة في الصور الخلفية الفعلية للتطبيق.

كود VSC:
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

أخيرًا ، إذا كان لديك طريقة لتعيين الخيار debug لمحطة xterm.js إلى true في رمز VS ويمكن إرسال سجلات المحطة الطرفية مرة أخرى ، فسيكون ذلك مفيدًا حقًا أيضًا. يجب أن تبدو هكذا:

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

ملاحظة: هل يمكنك أيضًا إرسال الإصدار المعين من hyper الذي تستخدمه؟ لم يقم Hyper بدمج xterm.js حتى الآن (https://github.com/zeit/hyper/pull/1983) ، لذلك إذا كانت هذه مشكلة تظهر في كل من البرامج التي تستخدم xterm.js و hyper.is فمن المحتمل أنها مشكلة نظام Linux الفرعي.

لقد رأيت هذا من قبل عندما يكون لديك ألوان غير قياسية في cmd.exe. إذا أدى ذلك إلى حل المشكلة ، فهذه مشكلة في https://github.com/rprichard/winpty

Tyriar أنت على حق في المال. اضطررت إلى تغيير لون الخلفية في قائمة "الإعدادات الافتراضية" في cmd.exe بدلاً من قائمة "الخصائص". يبدو أن إعادة تعيينه إلى اللون الأسود قد أصلحته.

parisk أفترض أنك لن تحتاج إلى التفاصيل أعلاه إذن؟ يسعدني التقاط بعض لقطات الشاشة إذا كنت لا تزال ترغب في ذلك.

@ christopher-tse cool ، سأغلق هذا لأنه مشكلة في المنبع. لا يجب أن تكون التفاصيل ضرورية 😃

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

goxr3plus picture goxr3plus  ·  3تعليقات

Tyriar picture Tyriar  ·  4تعليقات

pfitzseb picture pfitzseb  ·  3تعليقات

jerch picture jerch  ·  3تعليقات

travisobregon picture travisobregon  ·  3تعليقات