Terminal: أضف دعم emoji إلى Windows Console

تم إنشاؤها على ٢٣ مايو ٢٠١٨  ·  68تعليقات  ·  مصدر: microsoft/terminal

يرجى دعم الرموز التعبيرية داخل وحدة تحكم Windows.

مفيد جدًا عند كتابة التعليمات البرمجية في الرسائل الإخبارية vim للشركات الناشئة أو عند تصنيف الأشياء حسب الرموز التعبيرية.

Area-Rendering Issue-Feature Product-Conhost

التعليق الأكثر فائدة

بالفعل على التراكم :)

ال 68 كومينتر

بالفعل على التراكم :)

حلو! حالة استخدام أخرى: لدي تطبيق سطر أوامر يقوم بإخراج التحذيرات باستخدام ⚠.

@ zadjii-msft هل سيتضمن هذا دعمًا لأحرف يونيكود غير لاتينية؟ على سبيل المثال ، هل يمكن عرض الأحرف العربية أو اليابانية غير الموجودة في خط وحدة التحكم المنتشر حاليًا بخط مختلف؟

افتراضيًا ، نعم.

اللغة العربية هي مشكلة خاصة بها نوعًا ما - ليس هناك فرصة كبيرة لأن نطبق دعم اللغة من اليسار إلى اليمين في أي وقت قريب ، ولكن قد تتمكن الأحرف من العرض بشكل صحيح.

يمكن لـ adiviness التحدث أكثر عن الموضوع إذا كان هناك المزيد لمشاركته.

اللغة العربية هي لغة صعبة بسبب الدعم الإضافي المطلوب للنصوص ثنائية الاتجاه والأحرف المركبة. على حد علمي ، لا تدعمه حاليًا العديد من المحاكيات الطرفية.

هناك أيضًا فرق بين قدرة وحدة التحكم على عرض الرموز التعبيرية ودعم الخط الاحتياطي في حالة عدم احتواء الخط الحالي على حرف رسومي. كلاهما من البنود المتراكمة لدينا.

+1 نصوص البناء و CI بها رموز تعبيرية للنجاح ✔️ ، تحذير ⚠ وأخطاء ❌ لمعاينة السجلات بسرعة وإنتاجية.

هل يمكننا من فضلك عدم +1 القضايا؟ الرجاء استخدام ردود الفعل أو الاشتراك في الإخطارات.

miniksa ، لن أشتت انتباهي كثيرًا بإجراء +1. يمكنك تجاهلها تماما. كان الغرض الرئيسي من كتابته هو توضيح حالة الاستخدام. من المفترض أن يكون مالكو النظام الأساسي / المنتج مهتمين جدًا بحالات استخدام العملاء ... يعتقد أنه تم منحها في هذه الحالة ليس باهظًا جدًا.

SidShetye - نقدر تعليقك - حالة الاستخدام الخاصة بك ليست غير عادية ، ولكن من المفيد أن تسمع عنها.

بشكل عام ، نطلب من الأشخاص عدم إجراء 1+ لأننا نرغب في تجنب إجراء 1+ للأشخاص (خاصة مع عدم وجود تعليق إضافي) ، والذي ينتهي به الأمر كضوضاء ، ويجعل من الصعب تحليل سلاسل المحادثات وإدارتها.

تعد مشاركة التعليقات الإضافية والسياق والملاحظات والقضايا وما إلى ذلك أكثر قيمة من 1+ ؛)

من الغريب أنه لم يذكرها أحد ، لكن مدير حزمة Yarn يستخدم Emoji ومن المزعج بعض الشيء أنه يتم عرضها كمربعات فقط: /

شكرًا @ Destuctive-dragon - هناك العديد من الأدوات التي تحتوي على / تنبعث منها رموز تعبيرية ، لكن وحدة التحكم ليست قادرة بعد على عرضها.

bitcrazed لقد ذكرت في موضوع Twitter هذا على الإصدار الفارغ أننا ما زلنا بحاجة إلى انتظار مخزن مؤقت جديد وعارض جديد (DirectWrite). هل هذان العاملان الوحيدان المتبقيان؟

kavdev بشكل أساسي ، نعم. لعرض الصور الرمزية للرموز التعبيرية ، علينا أولاً أن نكون قادرين على تخزين (يحتمل أن تكون مركبة) نقاط كود Unicode لكل حرف رسومي (على سبيل المثال Ninjacats) ، ولكن علينا أيضًا أن نكون قادرين على عرضها ، الأمر الذي يتطلب خطًا احتياطيًا ، وهو ما لا يفعله GDI ' ر الدعم.

سنعمل على إدخال تحسينات على كل من تنفيذ المخزن المؤقت للنص الخاص بوحدة التحكم ، وكذلك العارض في الإصدارات المستقبلية.

تضمين التغريدة
العديد من Emoji عبارة عن مواد مركبة ، على سبيل المثال ، ربط عدة نقاط رمز معًا (باستخدام ZWJ أو VS ، أو أي شيء آخر) ، وفي معظم الحالات لا تتناسب مع خلية وحدة تحكم واحدة. لذا فإن مشكلتك ليست "خلية واحدة إلى عدد n حرف" ولكن "m من الخلايا إلى عدد n من الأحرف" ...

image

يقوم كل من FWIW ومحاكي المحطة الطرفية و iTerm2 بتقديم الرموز التعبيرية من خلال معاملتها بشكل أساسي على أنها أحرف نمط CJK "كاملة العرض" (مكونة من خليتين). لا أعرف شيئًا عن iTerm2 لكنني لا أبذل أي محاولة لدعم "معدِّلات" يونيكود على الرموز التعبيرية أو أي أحرف أخرى. يجب أن يكون كل حرف نقطة رمز يونيكود واحدة على الرغم من أنه قد يكون عرضًا عاديًا أو عرضًا كاملاً.

امين
يجب أن يكون الحل النهائي هو Unicode أو أي مواصفات تخبرنا بكيفية التعامل مع البرنامج النصي المعقد على شبكة الأحرف.

قد تكون الفكرة الأقرب هي تطبيق بعض المفاهيم من التبرير (مثل إدخال مسافات بين أحرف شرق آسيا ، وإدخال الكشيدة عند ملائمة الأحرف العربية في الشبكة) ، لكن تنفيذ التبرير يمثل فوضى تامة. تقوم AFAIK DWRITE بأفضل عمل حتى الآن ، لكن بعض التطبيقات (مثل Kashida) لا تزال صعبة للغاية.

تعليق واحد فقط قد يكون مفيدًا - بعض الرموز التعبيرية ورموز يونيكود المستخدمة للعمل ، كنت أعرض بعضها على شعار تسجيل الدخول إلى WSL ، على سبيل المثال 🍰 (U + 1F370) ، منذ التحديث 1809 لم تعد تظهر في أي محطة طرفية (WSL bash ، هايبر ، رمز VS)
تعمل بعض الرموز بالفعل في عام 1809 ، مثل ☕ (U + 2615) لكنني أعتقد أنها موجودة في أجزاء مختلفة من طيف Unicode ، أي نقاط تشفير أقل بكثير

يبدو أن تحديث أكتوبر يجلب تراجعاً في هذا الصدد بدلاً من التقدم. كنت سابقًا قادرًا على استخدام جميع رموز unicode التي اختبرتها في محطة VS Code المتكاملة (التي تستخدم powerhell) ، ولكن بعد تحديث أكتوبر ، لا يتم عرض جميع الرموز التعبيرية وبعض أحرف اللغة الأجنبية بشكل صحيح.

يبدو أن هذا في الواقع يمثل مشكلة خط على مستوى النظام بالكامل ، حتى أن محاكيات وحدة التحكم مثل ConEmu تفشل الآن في تقديم الرموز التعبيرية بشكل صحيح.

@ Ben- Hopenoxabellus نفسه هنا.

لقد قمت بتحديث Windows 10 إلى 1809 وذهبت الرموز التعبيرية (PowerShell و Visual Studio Code ؛ محطة متكاملة).

انظر الأمر vue ui of vue-cli كمثال:
🚀 بدء تشغيل واجهة المستخدم الرسومية ...

نعم أفتقد ذلك الصاروخ الصغير عند بدء vue-cli 😢

bitcrazed @ zadjii-msft هل هناك مشكلة في تتبع الانحدار الموجود عام 1809؟ أنا لا أتحدث عن دعم الرموز التعبيرية الكامل ، فقط أستعيد اللغة الأجنبية الأساسية / الحروف الرسومية الموحدة التي كانت مدعومة في الإصدارات السابقة. هل تعلم ما إذا كانت المشكلة لا تزال قائمة في الإصدارات التجريبية اللاحقة؟

كذلك هنا. لقد قمت بتحديث Win10 الخاص بي من 1803 إلى 1809 منذ عدة أيام ، والآن لم تعد تظهر جميع الأحرف> = U + 10000 (UTF-8 مع 4 بايت أو أكثر). لقد جربت أيضًا أحدث إصدار داخلي (Windows 10 Insider Preview 18358.1 (19h1_release)) ، لسوء الحظ ، لا يزال هذا الخطأ موجودًا.

منذ إصدار 19H1 قريبًا ، هل يمكنك إصلاحه أو الإبلاغ عنه لأنه قد يكون خطأ في مشروع آخر؟

نفس = (

يبدو أن عرض الرموز التعبيرية قد تحسن.

لقد جربت إصدارًا حديثًا CascadiaPackage (Windows ؛ x64) واحصل على هذا (انظر الصورة):

terminal

يعمل بنظام التشغيل Windows 10 ، بناء 1903.

هل هناك أي ميزة لوجود خيار لتعطيل الرموز التعبيرية ذات الخط الملون؟

إذن أي رمز تعبيري مستخدم سيكون لونًا واحدًا باستخدام إعدادات لون الخط؟

mdtuak نعم ، في الواقع هذا إعداد miniksa ولقد ناقشت سابقًا إضافة. لقد قدمت للتو # 956 لتتبع هذا العمل :)

MartinMa هذا شيء مختلف تمامًا عن ملف conhost.exe الحالي ، إذا حاولت تشغيل OpenConsolePackage (وهو مضيف OSS) ، فلا يزال يتعين عليك مواجهة المشكلة.

MartinMa هذا شيء مختلف تمامًا عن ملف conhost.exe الحالي ، إذا حاولت تشغيل OpenConsolePackage (وهو مضيف OSS) ، فلا يزال يتعين عليك مواجهة المشكلة.

لا تكن متأكدا! إن عارض DirectWrite المستخدم في Windows Terminal _ هو أيضًا جزء من OpenConsole! _ تحتاج فقط إلى تعيين مفتاح التسجيل ( HKCU\Console\UseDx = DWORD(1) ) قبل استخدامه.

@ DHowett-MSFT تطرح وحدة التحكم استثناءً عند لصق سلسلة رموز تعبيرية.
إنه هنا.
https://github.com/microsoft/terminal/blob/2fdcb679ab1f1f1edc542e3b86327dacea78f7ac/src/buffer/out/CharRowCellReference.cpp#L15

@ DHowett-MSFT Dustin Howett FTE تطرح وحدة التحكم استثناءً عند لصق سلسلة رموز تعبيرية.
إنه هنا.
https://github.com/microsoft/terminal/blob/2fdcb679ab1f1f1edc542e3b86327dacea78f7ac/src/buffer/out/CharRowCellReference.cpp#L15

أنا متأكد بنسبة 80-90 ٪ من أن adiviness أو لدي خطأ يغطي هذا بالفعل في مكان ما هنا.

نعم ، من المحتمل أن يؤثر العمل الذي أقوم به على /dev/austdi/NewCookedRead على الانهيار هناك. لا ندعم لصق الرموز التعبيرية (أو كتابتها) تمامًا حتى الآن في جميع الأصداف.

MartinMa هذا شيء مختلف تمامًا عن ملف conhost.exe الحالي ، إذا حاولت تشغيل OpenConsolePackage (وهو مضيف OSS) ، فلا يزال يتعين عليك مواجهة المشكلة.

لا تكن متأكدا! إن عارض DirectWrite المستخدم في Windows Terminal _ هو أيضًا جزء من OpenConsole! _ تحتاج فقط إلى تعيين مفتاح التسجيل ( HKCU\Console\UseDx = DWORD(1) ) قبل استخدامه.

لم أكن أعرف حتى. أنا ذاهب إلى المنزل لتجربته في الليل. ولكن هل يؤثر هذا التسجيل على ملف conhost.exe الافتراضي؟

تحديث 2019-07-19 20:47 UTC + 8

على الرغم من أن OpenConsole يمكنه فتح عرض DirectWrite باستخدام HKCU\Console\UseDx ، إلا أنه لا يزال يبدو أنه غير قادر على عرض الرموز التعبيرية.

屏幕截图(5)

屏幕截图(6)

ربما يتعلق بـ https://github.com/microsoft/terminal/issues/2053

نعم ، من شبه المؤكد أنه بسبب # 2053.

@ DHowett-MSFT هل سيكون إصلاح الالتزام الخاص بي مناسبًا ، إذا لم تكن هناك مشكلة ، فسوف أقوم بإنشاء علاقات عامة.

https://github.com/fcharlie/terminal/commit/4c6280ca35fff9eac0041c94385574bedc5f2a27

رأيت فيديو يوتيوب هذا مع @ cinnamon-msft. أظهرت دعم الرموز التعبيرية. هل هذا ثابت؟ 😄

innovoix هذا هو Windows Terminal ، هذا عن وحدة تحكم Windows .

@ ExE-Boss آه حسنًا ، يا سيئ.

image

عندما أقوم بإعداد محطة عمل Windows لأول مرة منذ 10 سنوات ، أصبحت الآن معتادة جدًا على OSX ، كنت منزعجًا جدًا لفقدان الرموز التعبيرية المحببة والمفيدة للغاية. نوع من المضحك ، إنه ليس بالفعل افتراضيًا منذ فترة طويلة.

ماذا كان يقول UnfundedPillow2 و ShutUpCon ؟ لن نعرف الآن أبدًا 😢😢

صيحة كبيرة أيضًا لـ iTerm . نرجو أن نجدك وعظمتك على هذه المنصة في وقت ما قريبًا. لا ألواح مقسمة؟ يا له من ألم 😱😱

jasonhargrove شكرا على ردود الفعل. قد ترغب في التحقق من _Windows Terminal_ ، والتي (بالمصادفة) بنيت أيضًا من هذا المستودع. إنه يدعم الأشياء التي تبحث عنها.

image

jasonhargrove نخطط لدمج العديد من التحسينات على المحرك الأساسي الذي يقوم عليه كل من Windows Terminal و Windows Console مرة أخرى في Windows Console في المستقبل. تتضمن هذه المناطق المخزن المؤقت الداخلي للنص ومحرك عرض النص وما إلى ذلك - الأشياء التي لن تؤثر بشكل عام على التوافق مع الإصدارات السابقة.

لماذا التحذير "المتخلف"؟ وظيفة Windows Console (مع Cmd) ، هي أن تظل متوافقة مع الإصدارات السابقة حيثما أمكن ذلك. وبالتالي ، سيكون هناك العديد من الميزات (مثل علامات التبويب ، والأجزاء المنقسمة ، وما إلى ذلك) التي ستكون متاحة فقط في Windows Terminal ، ولن تعود إلى وحدة التحكم.

نوصي بشدة أن يبدأ المستخدمون في تقييم Windows Terminal واختباره ، وتقديم أي مشكلات غير متوقعة هنا حتى نتمكن من فرزها وإصلاحها في أسرع وقت ممكن بينما نقود Terminal نحو الإصدار 1.0 (~ الربع الثاني من عام 2020).

FWIW ، اعتبارًا من الإصدار v0.7 ،

الشيء الوحيد الذي يدفعني إلى الجنون هو عدم القدرة على Shift + Insert لصق في Windows Terminal.

jsilvermist يمكنك إضافة shift+ins كربط مفتاح في إعداداتك الطرفية.

jsilvermist طلب مهذب - يرجى الاحتفاظ بالمشكلات في المواضيع ذات الصلة. المسألة التي تصفها تتعلق بروابط المفاتيح وليس الرموز التعبيرية ؛)

bitcrazed صحيح ، يا سيئة! أيضا ، شكرا @ DHowett-MSFT!

تحرير: نسيت الرموز التعبيرية الإلزامية: غمزة:

jsilvermist لا مشكلة - كلنا نفعل ذلك بين الحين والآخر - شكرًا جزيلاً 😜 👍

إظهار الرموز التعبيرية والأجزاء في Windows Terminal:

image

حسنًا ، يأتي عيد الميلاد مبكرًا! بداية رائعة لهذا ويا لها من قفزة كبيرة إلى الأمام ، تهانينا. وشكرًا على إعلامي بها 📈

Capture

هل من الطبيعي أن ترى ?? إذا قمت بلصق الإيموجي. يرجى تأكيد. شكرا لك مقدما.

AmericanY نعم ، هذه مشكلة في PowerShell 5.1.

@ DHowett-MSFT يحدث على CMD و PowerShell و windows new terminal.

تقوم WSL بطباعة بعض الأحرف غير المعتادة بعد أن تقوم بتصيير سلسلة unicode. كنت أحاول إنشاء لعبة تفاعلية ولم أتمكن من عرض الشخصيات بسبب ذلك. يبدو أنني يجب أن أقصر نفسي على 128 بت ASCII
image

أريد فقط أن أقول ، مع الاعتذار ، أن هذا يبدو مضحكًا.

هل يتوفر رمز src الخاص بـ fmt_test.exe في مكان ما؟ (لقطة شاشة بواسطة fcharlie سابقًا في هذا الموضوع) أواجه صعوبة في تكرار النتيجة.

شكرا!

أهلا،
للإضافة إلى تعليق AmericanY ، عند لصق رمز تعبيري في Windows Terminal ، يتم كسر رمز تعبيري (على سبيل المثال من إخراج موجود مسبقًا) في الإدخال ويتم تصحيحه في الإخراج.
أيضًا إذا قمت بعمل سهم لأعلى بعد ذلك مباشرة ، فهذا صحيح في الإدخال هذه المرة.

هل هذا متوقع؟

image

ويندوز طرفية
Powershell Core 6.2.1
Meslo LG M for Powerline

AmericanY نعم ، هذه مشكلة في PowerShell 5.1.

إلى جانب ذلك ، يتم تحويل المسافة بين اثنين من الرموز التعبيرية إلى تغذية خطية في الإصدار 5.1 الفاخر ، ولكن ليس في الأصداف الأخرى مثل الرماد والباش وما إلى ذلك:

remidebette سترغب في رؤية # 1503

@ zadjii-msft ، يبدو هذا صعبًا للغاية ، لكنه سيكون رائعًا حقًا بمجرد كسره.
أصبر!

لقد اختبرت الرموز التعبيرية على عدد قليل من الأصداف ضمن Windows Terminal (الإصدار: 0.11.1191.0) وإليك النتائج:

  • CMD
    image
  • بوويرشيل
    image
  • كمدر
    image
  • WSL مع ZSH
    image
  • Cygwin مع ZSH
    image

يبدو أن الغلاف الوحيد الذي يعمل بشكل مثالي حتى الآن هو WSL (كلاهما bash و zsh) ...

أنا أعمل مع مجموعة قديمة من المعلومات ، ولكن على الأقل كان من المعتاد أن تقوم وحدة التحكم بتخزين سطر المطالبة في مخزن مؤقت منفصل عن المخزن المؤقت للإخراج وأنه لا يدعم أكثر من تشفير ucs2. تعمل WSL قبل الميلاد وهي مشفرة في utf8. كنت أعمل في فرع في وقت ما أصلح هذا ، إذا وجدت الوقت في نهاية هذا الأسبوع ، فسألقي نظرة خاطفة. همم

تحرير: قد تعمل WSL أيضًا إذا لم تستخدم القراءة المطبوخة مثل الآخرين ، ولا أتذكر ما إذا كانت تعمل أم لا.

كيف يمكنني إصلاح الإيموجي؟

أواجه نفس المشكلة. يبدو أنه لا يوجد حل محدث afaik.

image

حلو! حالة استخدام أخرى: لدي تطبيق سطر أوامر يقوم بإخراج التحذيرات باستخدام ⚠.

إخراج Emoji يعمل بشكل جيد في تجربتي.

لذلك يمكن التأكد من أن المشكلة تكمن في عدم عرض أحرف الإدخال بشكل صحيح في windows Terminal. لقد جربت Git Bash (نوع واحد من shell) ، وهي تعمل بشكل جيد مع Git Bash GUI ، ولكنها لا تعمل مع windows terminal مثل الأخطاء المذكورة مثل غيرها.

  1. Git Bash GUI
    pic08-27-12-45-00
  2. Git Bash مع Windows Terminal
    pic08-27-12-46-35

إصدار المحطة الطرفية الخاص بي هو 1.1.2233.0.
نأمل أن يصلحه في أقرب وقت ممكن! 👍 وهل يوجد جدول تقديري؟

يرجى تقديم خطأ منفصل لهذه المشكلة وتضمين محتويات ملف إعدادات Windows Terminal الخاص بك.

يرجى تقديم خطأ منفصل لهذه المشكلة وتضمين محتويات ملف إعدادات Windows Terminal الخاص بك.

لدي نفس المشكلة:
{ "guid": "{00000000-0000-0000-ba54-000000000002}", "acrylicOpacity": 0.75, "closeOnExit": true, "colorScheme": "Campbell", "commandline": "\"%PROGRAMFILES%\\git\\usr\\bin\\bash.exe\" -i -l", "cursorColor": "#FFFFFF", "cursorShape": "bar", "fontFace": "Consolas", "fontSize": 10, "historySize": 9001, "icon": "%PROGRAMFILES%\\Git\\mingw64\\share\\git\\git-for-windows.ico", "name": "Bash", "padding": "10, 0", "snapOnInput": true, "startingDirectory": "%USERPROFILE%", "useAcrylic": true },
محطة الويندوز: v1.3.2651.0
بوابة: v2.16.2.windows.1

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