رمز الهروب ANSI
تُعدّ تسلسلات الهروب ANSI معيارًا للإشارات داخل النطاق للتحكم في موقع المؤشر ولونه ونمط الخط وخيارات أخرى في محطات عرض النصوص المرئية ومحاكيات المحطات الطرفية . تُضمّن تسلسلات معينة من البايتات ، يبدأ معظمها بحرف هروب ASCII وحرف قوس ، في النص. تُفسّر المحطة الطرفية هذه التسلسلات كأوامر، وليس كنص لعرضه حرفيًا. يمكن لرموز ANSI تغيير لون النص وتحريك المؤشر بحيث يمكن رسم النص في أي مكان على الشاشة.
تم تقديم تسلسلات ANSI في سبعينيات القرن الماضي لتحل محل التسلسلات الخاصة بكل مُصنِّع، وانتشرت على نطاق واسع في سوق معدات الحاسوب بحلول أوائل ثمانينيات القرن الماضي. وعلى الرغم من أن محطات طرفية نصية مادية أصبحت نادرة بشكل متزايد في القرن الحادي والعشرين، إلا أن أهمية معيار ANSI لا تزال قائمة لأن الغالبية العظمى من برامج محاكاة المحطات الطرفية ووحدات التحكم في الأوامر تفسر جزءًا على الأقل من معيار ANSI.
ANSI تعني " المعهد الوطني الأمريكي للمعايير ".
تاريخ
أضافت معظم شركات تصنيع شاشات العرض تسلسلات هروب خاصة بها لتنفيذ عمليات مثل وضع المؤشر في أي موضع على الشاشة. ومن الأمثلة على ذلك شاشة VT52 ، التي كانت تسمح بوضع المؤشر في الموضع (س، ص) على الشاشة بإرسال الحرف ESC، ثم Yحرف آخر، ثم حرفين يمثلان قيمًا عددية تساوي الموضع (س، ص) مضافًا إليه 32 (أي بدءًا من مسافة ASCII وتجنبًا لأحرف التحكم). وكانت شاشة Hazeltine 1500 تتمتع بميزة مماثلة، يتم تفعيلها باستخدام ~، DC1ثم الموضعين س و ص مفصولين بفاصلة. وبينما كانت الشاشتان متطابقتين في هذه الوظيفة، إلا أنه كان لا بد من استخدام تسلسلات تحكم مختلفة لتفعيلها.
نظرًا لاختلاف هذه التسلسلات بين المحطات الطرفية المختلفة، كان لا بد من إنشاء مكتبات متطورة مثل termcap ("إمكانيات المحطة الطرفية") وأدوات مساعدة مثل tput ، لكي تتمكن البرامج من استخدام واجهة برمجة التطبيقات نفسها للعمل مع أي محطة طرفية. إضافةً إلى ذلك، تطلبت العديد من هذه المحطات الطرفية إرسال أرقام (مثل رقم الصف والعمود) كقيم ثنائية للأحرف؛ وبالنسبة لبعض لغات البرمجة، وللأنظمة التي لا تستخدم ASCII داخليًا، كان من الصعب غالبًا تحويل الرقم إلى الحرف الصحيح.
سعت معايير ANSI إلى معالجة هذه المشكلات من خلال وضع مجموعة أوامر موحدة لجميع المحطات الطرفية، واشتراط إرسال جميع المعلومات الرقمية كأرقام ASCII. كان معيار ECMA-48 أول معيار في هذه السلسلة ، وقد اعتُمد عام 1976. [ 1 ] وكان هذا المعيار امتدادًا لسلسلة من معايير ترميز الأحرف، أولها ECMA-6 الصادر عام 1965، وهو معيار ذو 7 بتات، انبثق منه معيار ISO 646. يعود مصطلح "تسلسل الهروب ANSI" إلى عام 1979 عندما اعتمدت ANSI معيار ANSI X3.64. تعاونت لجنة ANSI X3L2 مع لجنة ECMA TC 1 لإنتاج معايير متطابقة تقريبًا. دُمج هذان المعياران في معيار دولي واحد، هو ISO 6429. [ 1 ] في عام 1994، سحبت ANSI معيارها لصالح المعيار الدولي.

كان جهاز Digital VT100 ، الذي طُرح عام 1978، أول جهاز طرفي فيديو شائع يدعم هذه التسلسلات. [ 2 ] حقق هذا الطراز نجاحًا كبيرًا في السوق، مما أدى إلى ظهور العديد من الأجهزة المقلدة له، وكان من أوائلها وأكثرها شيوعًا جهاز Zenith Z-19 الأقل سعرًا بكثير، والذي طُرح عام 1979. [ 3 ] وشملت الأجهزة الأخرى Qume QVT-108 و Televideo TVI-970 و Wyse WY-99GT، بالإضافة إلى أوضاع "VT100" أو "VT103" أو "ANSI" الاختيارية، والتي تفاوتت درجات توافقها مع العديد من العلامات التجارية الأخرى. أدى انتشار هذه الأجهزة تدريجيًا إلى افتراض المزيد من البرامج (وخاصة أنظمة لوحات الإعلانات الإلكترونية والخدمات الأخرى عبر الإنترنت ) أن تسلسلات الهروب تعمل، مما أدى إلى دعمها في جميع الأجهزة الطرفية وبرامج المحاكاة الجديدة تقريبًا.
في عام 1981، تم اعتماد معيار ANSI X3.64 للاستخدام في الحكومة الأمريكية من خلال منشور FIPS رقم 86. وفي وقت لاحق، توقفت الحكومة الأمريكية عن تكرار معايير الصناعة، لذلك تم سحب منشور FIPS رقم 86. [ 4 ]
تم تحديث معيار ECMA-48 عدة مرات، وهو حاليًا في طبعته الخامسة، منذ عام 1991. [ 5 ] كما تم اعتماده من قبل المنظمة الدولية للمعايير (ISO) واللجنة الكهروتقنية الدولية (IEC) كمعيار ISO/IEC 6429. [ 6 ] وتم اعتماد نسخة منه كمعيار صناعي ياباني ، تحت اسم JIS X 0211 .
تشمل المعايير ذات الصلة معيار ITU T.61 ، ومعيار Teletex ، ومعيار ISO/IEC 8613 ، ومعيار بنية المستندات المفتوحة (وتحديدًا ISO/IEC 8613-6 أو ITU T.416). يشترك النظامان في العديد من رموز الهروب مع نظام ANSI، مع امتدادات قد لا تكون ذات معنى لأجهزة الحاسوب الطرفية. سرعان ما هُجر كلا النظامين، لكن معيار ECMA-48 يُصنّف الامتدادات المستخدمة فيهما على أنها محجوزة.
دعم المنصة

في أوائل ثمانينيات القرن العشرين، استخدمت كميات كبيرة من البرامج هذه التسلسلات مباشرةً لتحديث شاشات العرض. وشمل ذلك كل شيء على نظام VMS (الذي كان يفترض وجود محطات طرفية من نوع DEC)، ومعظم البرامج المصممة لتكون قابلة للنقل على أجهزة الكمبيوتر المنزلية التي تعمل بنظام CP/M ، وكميات كبيرة من برامج Unix، لأنها كانت أسهل استخدامًا من مكتبات termcap.
تُطبّق برامج محاكاة الطرفيات للتواصل مع الأجهزة البعيدة عادةً رموز ANSI الخاصة بالهروب. ويشمل ذلك أي برنامج مُصمّم للتواصل مع أنظمة لوحات الإعلانات على أجهزة الكمبيوتر المنزلية والشخصية. في أنظمة يونكس، تستطيع برامج محاكاة الطرفيات مثل xterm التواصل مع البرامج التي تعمل على نفس الجهاز، وبالتالي، يمكن للبرامج التي تعمل في بيئة X11 ضمن برنامج محاكاة الطرفيات أن تمتلك القدرة على كتابة هذه التسلسلات.
مع ازدياد قوة الحواسيب، بدأت حتى الشاشات المدمجة بدعمها، مما سمح بنقل البرامج بين أنظمة CP/M. وقد بُذلت محاولات لتوسيع تسلسلات الهروب لدعم الطابعات [ 7 ] ، وكشكل مبكر لتخزين المستندات يشبه PDF، ظهرت بنية المستندات المفتوحة ( Open Document Architecture ).
لم يدعم جهاز IBM PC، الذي طُرح عام 1981، هذه التسلسلات أو أي تسلسلات أخرى لتحديث الشاشة. كانت بعض أحرف التحكم فقط ( BEL ، CR ، LF ، BS ) تُفسَّر بواسطة نظام الإدخال والإخراج الأساسي (BIOS). كان لا بد من تنفيذ أي تأثيرات عرضية باستخدام استدعاءات BIOS، التي كانت بطيئة للغاية، أو عن طريق التلاعب المباشر بمكونات جهاز IBM PC. هذا الأمر جعل أي برنامج مثير للاهتمام غير قابل للنقل، وأدى إلى ضرورة تكرار تفاصيل مكونات شاشة العرض في أجهزة الكمبيوتر الشخصية المُقلَّدة .
تضمنت النسخة 2.0 من نظام التشغيل DOS برنامج تشغيل اختياري للأجهزة يُسمى ANSI.SYS . ونظرًا لضعف أدائه، وعدم تثبيته افتراضيًا، نادرًا ما استفادت منه البرامج (إن استفادت منه أصلًا).
لم تدعم وحدة تحكم ويندوز تسلسلات الهروب ANSI، ولم توفر مايكروسوفت أي طريقة لتفعيلها. بعض البدائل، مثل TCC (المعروف سابقًا باسم 4NT) من JP Software، وANSI.COM لمايكل جيه. ميفورد، و ANSICON لجيسون هود [ 8 ] ، و ConEmu لماكسيموس 5، مكّنت تسلسلات الهروب ANSI. برامج مثل حزمة colorama في بايثون [ 9 ] أو Cygwin عدّلت النص أثناء إرساله إلى وحدة التحكم، واستخرجت تسلسلات الهروب ANSI، وحاكتها باستخدام استدعاءات ويندوز. في عام 2016، أصدرت مايكروسوفت تحديث ويندوز 10 الإصدار 1511 الذي فاجأ الجميع بدعم تسلسلات الهروب ANSI، بعد أكثر من ثلاثة عقود على إطلاق ويندوز. [ 10 ] تم ذلك بالتزامن مع نظام ويندوز الفرعي لنظام لينكس ، على ما يبدو للسماح للبرامج الطرفية الشبيهة بنظام يونكس باستخدام وحدة تحكم ويندوز. مكّن ويندوز باور شيل 5.1 هذه الميزة افتراضيًا، وجعل باور شيل 6 من الممكن تضمين حرف ESC اللازم في سلسلة نصية . [ 11 ] يدعم Windows Terminal ، الذي طُرح عام 2019، التسلسلات افتراضيًا. [ 12 ] منذ إصدار Windows 11 22H2 وWindows Terminal 1.15، حلّ Windows Terminal محل Windows Console كواجهة افتراضية. [ 13 ] [ 14 ]`e
رموز التحكم C0
يفترض معظم المستخدمين وظائف معينة لبعض الأحرف أحادية البايت. كانت مجموعة رموز التحكم C0، التي عُرّفت في البداية كجزء من ASCII، مُعرّفة الآن في معيار ISO 6429 (ECMA-48)، مما يجعلها جزءًا من نفس معيار مجموعة C1 التي تستخدمها تسلسلات الهروب ANSI (مع أن معيار ISO 2022 يسمح باستخدام مجموعة C0 الخاصة بمعيار ISO 6429 دون مجموعة C1 الخاصة به، والعكس صحيح ، بشرط أن يكون 0x1B دائمًا هو ESC). يُستخدم هذا لتقليل حجم البيانات المُرسلة، أو لتنفيذ بعض الوظائف غير المتاحة من تسلسلات الهروب.
| ^ | C0 | اختصار | تسلسل الهروب C | اسم | تأثير |
|---|---|---|---|---|---|
| ^G | 0x07 | بل | \a | جرس | يُصدر صوتاً مسموعاً. |
| ^ح | 0x08 | بكالوريوس العلوم | \b | مسافة للخلف | يحرك المؤشر إلى اليسار (ولكن قد "يلتف للخلف" إذا كان المؤشر في بداية السطر). |
| أنا | 0x09 | HT | \t | فاتورة غير مدفوعة | ينقل المؤشر إلى اليمين إلى علامة التبويب التالية. |
| ^J | 0x0A | LF | \n | تغذية الخط | ينتقل إلى السطر التالي، ويقوم بتمرير الشاشة للأعلى إذا كان في أسفلها. عادةً لا يتحرك أفقيًا، مع أن البرامج لا ينبغي أن تعتمد على ذلك. |
| ^L | 0x0C | FF | \f | تغذية النموذج | انقل الطابعة إلى أعلى الصفحة التالية. عادةً لا تتحرك أفقيًا، مع ذلك، لا ينبغي للبرامج الاعتماد على هذه الخاصية. يختلف تأثيرها على شاشات العرض. |
| ^M | 0x0D | CR | \r | إرجاع السطر | ينقل المؤشر إلى العمود صفر. |
| ^[ | 0x1B | خروج | \x1B،\033 | يهرب | يبدأ جميع تسلسلات الهروب |
تختلف تسلسلات الهروب في طولها. يُحدد معيار ANSI X3.41 (المكافئ لمعيار ECMA-35 أو ISO/IEC 2022) التنسيق العام لتسلسل الهروب المتوافق مع معيار ANSI. [ 15 ] : 13.1 تتكون تسلسلات الهروب من بايتات فقط في النطاق 0x20-0x7F (جميع أحرف ASCII غير التحكمية)، ويمكن تحليلها دون الحاجة إلى البحث المسبق. أما السلوك عند مصادفة حرف تحكم، أو بايت ذي بت عالي مُفعّل، أو بايت ليس جزءًا من أي تسلسل صالح قبل النهاية، فهو غير مُحدد.
تسلسلات الهروب Fe
إذا ESCتبعت هذه القيمة بايتًا في النطاق من 0x40 إلى 0x5F، فإن تسلسل الهروب يكون من النوع Fe. ويُعهد بتفسيره إلى معيار رمز التحكم C1 المطبق . [ 15 ] : 13.2.1 وبناءً على ذلك، فإن جميع تسلسلات الهروب المقابلة لرموز التحكم C1 من ANSI X3.64 / ECMA-48 تتبع هذا التنسيق. [ 16 ] : 5.3.a
ينص المعيار على أنه في بيئات 8 بت، يمكن تمثيل وظائف التحكم المقابلة Feلتسلسلات الهروب من النوع (تلك الموجودة في مجموعة رموز التحكم C1 ) كبايتات مفردة في النطاق 0x80–0x9F. [ 16 ] : 5.3.ب. هذا ممكن في ترميزات الأحرف المتوافقة مع أحكام رمز 8 بت الواردة في معيار ISO 2022، مثل سلسلة ISO 8859. مع ذلك، في ترميزات الأحرف المستخدمة في الأجهزة الحديثة مثل UTF-8 أو CP-1252 ، تُستخدم هذه الرموز غالبًا لأغراض أخرى، لذا يُستخدم عادةً تسلسل البايتين فقط. في حالة UTF-8، ينتج عن تمثيل رمز تحكم C1 عبر كتلة C1 Controls and Latin-1 Supplement رمز بايتين مختلف (مثل 0xC2,0x8E لـ U+008E )، ولكن لا يتم توفير أي مساحة بهذه الطريقة.
| شفرة | ج1 | اختصار | اسم | تأثير |
|---|---|---|---|---|
| ESC N | 0x8E | SS2 | وردية واحدة اثنان | اختر حرفًا واحدًا من إحدى مجموعات الأحرف البديلة . يختار SS2 مجموعة الأحرف G2، ويختار SS3 مجموعة الأحرف G3. [ 17 ] في بيئة 7 بت، يتبع ذلك بايت واحد أو أكثر من بايتات GL (0x20–0x7F) لتحديد حرف من تلك المجموعة. [ 15 ] : 9.4 في بيئة 8 بت، قد تكون هذه البايتات بايتات GR (0xA0–0xFF). [ 15 ] : 8.4 |
| ESC O | 0x8F | SS3 | ثلاث نوبات عمل فردية | |
| اللجنة الاقتصادية والاجتماعية لباكستان | 0x90 | DCS | سلسلة التحكم بالجهاز | تم إنهاء العملية بواسطة ST. [ 16 ] : 5.6 تشمل استخدامات Xterm لهذا التسلسل تعريف المفاتيح المعرفة من قبل المستخدم، وطلب أو تعيين بيانات Termcap/Terminfo. [ 17 ] |
| خروج [ | 0x9B | سي إس آي | مُدخل تسلسل التحكم | يبدأ معظم التسلسلات المفيدة، وينتهي ببايت في النطاق من 0x40 إلى 0x7E. [ 16 ] : 5.4 |
| خروج \ | 0x9C | شارع | مُنهي السلسلة | يُنهي السلاسل النصية في عناصر التحكم الأخرى. [ 16 ] : 8.3.143 |
| خروج ] | 0x9D | OSC | أوامر نظام التشغيل | يبدأ سلسلة تحكم ليستخدمها نظام التشغيل، وينتهي بـ ST. [ 16 ] : 8.3.89 |
| ESC X | 0x98 | نداء استغاثة | بداية السلسلة | تأخذ هذه الدالة وسيطًا عبارة عن سلسلة نصية تنتهي بـ ST. [ 16 ] : 5.6. تُحدد استخدامات تسلسلات التحكم في السلاسل النصية هذه بواسطة التطبيق [ 16 ] : 8.3.2، 8.3.128 أو بواسطة نظام الخصوصية. [ 16 ] : 8.3.94. نادرًا ما تُنفذ هذه الدوال، ويتجاهل xterm الوسائط. [ 17 ] تسمح بعض عملاء Kermit للخادم بتنفيذ أوامر Kermit تلقائيًا على العميل عن طريق تضمينها في تسلسلات APC؛ وهذا يُشكل خطرًا أمنيًا محتملاً إذا كان الخادم غير موثوق به. [ 18 ] |
| ESC ^ | 0x9E | مساءً | رسالة الخصوصية | |
| خروج _ | 0x9F | شركة APC | تطبيق برنامج التشغيل |
أوامر مُدخل تسلسل التحكم
بالنسبة لأوامر مُدخل تسلسل التحكم (CSI)، يتبع الأمر ESC [(المكتوب كـ \e[أو \x1b[في العديد من لغات البرمجة) أي عدد (بما في ذلك عدم وجود أي بايتات) من "بايتات المعلمات" في النطاق 0x30–0x3F (ASCII )، ثم أي عدد من "البايتات الوسيطة" في النطاق 0x20–0x2F (ASCII مسافة و )، ثم أخيرًا بايت "نهائي" واحد في النطاق 0x40–0x7E (ASCII ). [ 16 ] : 5.4\033[0–9:;<=>?!"#$%&'()*+,-./@A–Z[\]^_`a–z{|}~
تستخدم جميع التسلسلات الشائعة المعاملات كسلسلة من الأرقام مفصولة بفواصل منقوطة، مثل 1;2;3[ 16 ] : 5.4.2 . تُعامل الأرقام المفقودة على أنها 0( 1;;3يتصرف التسلسل كما لو أن الرقم الأوسط هو 0، وعدم وجود أي معاملات في التسلسل ESC[mيعمل 0كرمز إعادة ضبط). بعض التسلسلات (مثل CUU) تعامل التسلسل 0على 1أنه لجعل المعاملات المفقودة مفيدة. [ 16 ] : F.4.2
تم تصنيف مجموعة فرعية من الترتيبات على أنها "خاصة" لتمكين مصنعي الأجهزة الطرفية من إدخال تسلسلاتهم الخاصة دون التعارض مع المعيار. وتُعتبر التسلسلات التي تحتوي على بايتات المعلمات <=>?أو البايتات النهائية 0x70–0x7E ( p–z{|}~) خاصة.
يكون سلوك الجهاز الطرفي غير محدد في حالة احتواء تسلسل CSI على أي حرف خارج النطاق 0x20–0x7E. هذه الأحرف غير المسموح بها هي إما أحرف تحكم C0 (النطاق 0–0x1F)، أو DEL (0x7F)، أو بايتات ذات بت عالي مُفعّل. وتشمل الاستجابات الممكنة تجاهل البايت، أو معالجته فورًا، بالإضافة إلى تحديد ما إذا كان سيتم متابعة تسلسل CSI، أو إيقافه فورًا، أو تجاهل باقي التسلسل.
| الرمز [ أ ] | اختصار | اسم | تأثير |
|---|---|---|---|
| CSI n A | CUU | المؤشر للأعلى | يحرك المؤشر n خلية (افتراضيًا 1) في الاتجاه المحدد. إذا كان المؤشر موجودًا بالفعل على حافة الشاشة، فلن يكون لهذا أي تأثير. |
| CSIn B | العُضْوِيّ | مؤشر الماوس للأسفل | |
| CSI n C | CUF | تحريك المؤشر للأمام | |
| CSI n D | كوب | الرجوع بالمؤشر | |
| CSI in E | سي إن إل | المؤشر إلى السطر التالي | ينقل المؤشر إلى بداية السطر n (افتراضيًا 1) سطرًا لأسفل. (ليس ANSI.SYS ) |
| CSI n F | رخصة القيادة التجارية | المؤشر - السطر السابق | ينقل المؤشر إلى بداية السطر n ( افتراضيًا ) 1... |
| CSI n G | تشا | المؤشر أفقي مطلق | ينقل المؤشر إلى العمود n (افتراضيًا 1). (ليس ANSI.SYS ) |
| CSI n ; m H | كوب | موضع المؤشر | ينقل المؤشر إلى الصف n ، العمود m . القيم تبدأ من 1، والقيمة الافتراضية هي 1(الزاوية العلوية اليسرى) إذا تم حذفها. تسلسل مثل CSI ;5Hهذا مرادف لـ، CSI 1;5Hوكذلك CSI 17;Hهو نفسه CSI 17HوCSI 17;1H |
| CSI n J | ED | مسح في الشاشة | يمسح جزءًا من الشاشة. إذا كانت قيمة n0 تساوي صفرًا (أو غير موجودة)، فسيتم المسح من موضع المؤشر إلى نهاية الشاشة. إذا كانت قيمة n1 تساوي صفرًا، فسيتم المسح من موضع المؤشر إلى بداية الشاشة. إذا كانت قيمة n2 تساوي صفرًا، فسيتم مسح الشاشة بالكامل (مع نقل المؤشر إلى الزاوية العلوية اليسرى في ملف DOS ANSI.SYS ). إذا كانت قيمة n3 تساوي صفرًا، فسيتم مسح الشاشة بالكامل وحذف جميع الأسطر المحفوظة في مخزن التمرير (أُضيفت هذه الميزة لبرنامج xterm وهي مدعومة من قِبل تطبيقات طرفية أخرى). |
| CSI n K | إل | امسح في السطر | يمسح جزءًا من السطر. إذا كانت قيمة n0 تساوي صفرًا (أو غير موجودة)، فسيتم المسح من موضع المؤشر إلى نهاية السطر. إذا كانت قيمة n1 تساوي صفرًا، فسيتم المسح من موضع المؤشر إلى بداية السطر. إذا كانت قيمة n2 تساوي صفرًا، فسيتم مسح السطر بأكمله. لا يتغير موضع المؤشر. |
| CSI n S | SU | مرر للأعلى | قم بتمرير الصفحة بأكملها لأعلى بمقدار n سطرًا (افتراضيًا 1). تُضاف الأسطر الجديدة في الأسفل. (ليس ANSI.SYS ) |
| CSI n T | SD | مرر لأسفل | قم بتمرير الصفحة بأكملها لأسفل بمقدار n سطرًا (افتراضيًا 1). تُضاف الأسطر الجديدة في الأعلى. (ليس ANSI.SYS ) |
| CSI n ; m f | HVP | الوضع الأفقي الوضع الرأسي | يشبه الأمر CUP، ولكنه يُعتبر وظيفة مُؤثرة للتنسيق (مثل CR أو LF ) وليس وظيفة مُحرر (مثل CUD أو CNL). قد يؤدي هذا إلى اختلاف في طريقة التعامل في بعض أوضاع الطرفية. [ 16 ] : الملحق أ |
| CSI n m | SGR | اختر العرض الرسومي | يحدد ألوان ونمط الأحرف التي تتبع هذا الرمز |
| سي إس آي 5 آي | منفذ AUX قيد التشغيل | قم بتمكين منفذ التسلسل الإضافي عادةً للطابعة التسلسلية المحلية | |
| سي إس آي 4i | منفذ AUX مغلق | تعطيل منفذ التسلسل الإضافي عادةً للطابعة التسلسلية المحلية | |
| سي إس آي 6 إن | DSR | تقرير حالة الأجهزة | يقوم بالإبلاغ عن موضع المؤشر (CPR) عن طريق الإرسال ESC[n;mR، حيث n هو الصف و m هو العمود. |
| شفرة | اختصار | اسم | تأثير |
|---|---|---|---|
| مسلسل CSI | SCP، SCOSC | حفظ موضع المؤشر الحالي | يحفظ موضع/حالة المؤشر في وضع وحدة تحكم SCO. [ 19 ] في وضع تقسيم الشاشة الرأسي، يُستخدم بدلاً من ذلك لتعيين (كما هو الحال مع ) أو إعادة تعيين الهوامش اليسرى واليمنى. [ 20 ]CSI n ; n s |
| سي إس آي يو | RCP، SCORC | استعادة موضع المؤشر المحفوظ | يعيد موضع/حالة المؤشر في وضع وحدة تحكم SCO. [ 21 ] |
| سي إس آي ؟ 25 ساعة | ديكتسيم | يعرض المؤشر، من جهاز VT220 . | |
| سي إس آي ؟ 25 لترًا | ديكتسيم | يخفي المؤشر. | |
| سي إس آي ؟ 1004 ساعة | تفعيل خاصية التركيز على التقارير. يتم الإبلاغ عن كل من دخول محاكي الطرفية إلى التركيز أو خروجه منه، وذلك باستخدام الرمزين ESC [Iو ESC [O، على التوالي. | ||
| سي إس آي ؟ 1004 لتر | تعطيل التركيز على التقارير. | ||
| سي إس آي ؟ 1049 ساعة | قم بتمكين مخزن الشاشة البديل، من خلال xterm | ||
| سي إس آي ؟ 1049 لتر | قم بتعطيل مخزن الشاشة البديل من xterm | ||
| سي إس آي ؟ 2004 ساعة | فعّل وضع اللصق بين قوسين. [ 22 ] في وضع اللصق بين قوسين، سيُحاط النص المُلصق في الطرفية بعلامتي `--` ESC [200~و`-- ESC [201~`؛ ولا ينبغي للبرامج التي تعمل في الطرفية التعامل مع الأحرف المُحاطة بهذه التسلسلات كأوامر ( على سبيل المثال، لا يتعامل معها برنامج Vim كأوامر). [ 23 ] من xterm [ 24 ] | ||
| سي إس آي ؟ 2004 | قم بإيقاف وضع اللصق بين قوسين. |
حدد معلمات العرض الرسومي
يُستخدم تسلسل التحكم ، المسمى "تحديد العرض الرسومي" (SGR)، لضبط خصائص العرض. يمكن ضبط عدة خصائص في نفس التسلسل، مفصولة بفواصل منقوطة. [ 25 ] تبقى كل خاصية من خصائص العرض سارية المفعول حتى يتم إعادة ضبطها بواسطة تسلسل SGR التالي. [ 16 ] في حال عدم إدخال أي رموز، يتم التعامل مع الأمر على أنه (إعادة ضبط / عادي).CSI n mCSI mCSI 0 m
| ن | اسم | ملحوظة |
|---|---|---|
| 0 | إعادة ضبط أو الوضع العادي | يتم إيقاف تشغيل جميع الخصائص |
| 1 | جريء أو ذو كثافة متزايدة | كما هو الحال مع الخافت، فإن تغيير اللون هو اختراع خاص بأجهزة الكمبيوتر (SCO / CGA ). [ 26 ] |
| 2 | خافتة، أو منخفضة الشدة، أو باهتة | يمكن تطبيقه كخط خفيف الوزن مثل الخط العريض. [ 27 ] |
| 3 | مائل | لا يحظى بدعم واسع. يُعامل أحيانًا على أنه عكسي أو وميض. [ 26 ] |
| 4 | ضع خطاً تحته | تتوفر إضافات أنماط لبرامج Kitty وVTE وmintty وiTerm2 وKonsole. [ 28 ] [ 29 ] [ 30 ] |
| 5 | رمش بطيء | يضبط معدل الوميض على أقل من 150 مرة في الدقيقة |
| 6 | وميض سريع | MS-DOS ANSI.SYS، أكثر من 150 في الدقيقة؛ غير مدعوم على نطاق واسع |
| 7 | عكس الفيديو أو قلبه | قم بتبديل ألوان المقدمة والخلفية. |
| 8 | إخفاء أو ستر | لا يحظى بتأييد واسع. |
| 9 | مشطوب ، أو مشطوب | الأحرف قابلة للقراءة ولكنها مُعلّمة كما لو كانت للحذف. غير مدعوم في تطبيق Terminal.app. |
| 10 | الخط الأساسي (الافتراضي) | |
| 11-19 | خط بديل | اختر خطًا بديلًا n − 10 |
| 20 | فراكتورا (القوطية) | نادرًا ما يتم دعمه |
| 21 | مسطر بخطين؛ أو: غير غامق | التسطير المزدوج وفقًا لـ ECMA-48، [ 16 ] : 8.3.117 ولكن بدلاً من ذلك يتم تعطيل شدة الخط الغامق على العديد من المحطات الطرفية، بما في ذلك في وحدة تحكم نواة لينكس قبل الإصدار 4.17. [ 31 ] |
| 22 | شدة طبيعية | لا هو جريء ولا هو خافت؛ تتغير الألوان عند تطبيق الكثافة على هذا النحو. |
| 23 | لا مائل ولا أسود | |
| 24 | غير مسطر | لا مسطر بشكل مفرد ولا مسطر بشكل مزدوج |
| 25 | لا يرمش | أوقف خاصية الوميض |
| 26 | التباعد النسبي | من غير المعروف استخدام توصيات الاتحاد الدولي للاتصالات T.61 و T.416 على المحطات الطرفية |
| 27 | لم يتم عكس العملية | |
| 28 | يكشف | غير مخفي |
| 29 | غير مشطوب | |
| 30-37 | حدد لون المقدمة | |
| 38 | حدد لون المقدمة | الحجج التالية هي 5;nأو2;r;g;b |
| 39 | لون المقدمة الافتراضي | تم تحديد التنفيذ (وفقًا للمعيار) |
| 40-47 | تحديد لون الخلفية | |
| 48 | تحديد لون الخلفية | الحجج التالية هي 5;nأو2;r;g;b |
| 49 | لون الخلفية الافتراضي | تم تحديد التنفيذ (وفقًا للمعيار) |
| 50 | تعطيل التباعد النسبي | T.61 و T.416 |
| 51 | مؤطر | تم تنفيذه كـ " محدد تنويعات الرموز التعبيرية " في mintty. [ 32 ] |
| 52 | محاط | |
| 53 | مسطر | غير مدعوم في تطبيق Terminal.app |
| 54 | لا مؤطر ولا محاط بدائرة | |
| 55 | غير مسطر | |
| 58 | حدد لون الخط السفلي | غير موجود في المعيار؛ تم تنفيذه في Kitty وVTE وmintty وiTerm2. [ 28 ] [ 29 ] الوسائط التالية هي 5;nأو2;r;g;b . |
| 59 | لون التسطير الافتراضي | غير موجود في المعيار؛ تم تنفيذه في Kitty وVTE وmintty وiTerm2. [ 28 ] [ 29 ] |
| 60 | خط تحت الرسم التوضيحي أو خط على الجانب الأيمن | نادرًا ما يتم دعمه |
| 61 | خط مزدوج تحت الرمز التصويري، أو خط مزدوج على الجانب الأيمن | |
| 62 | خط علوي أو خط جانبي أيوديوجرام | |
| 63 | رسم تخطيطي مزدوج، أو خط مزدوج على الجانب الأيسر | |
| 64 | علامات الإجهاد التصويرية | |
| 65 | لا توجد سمات للرسم التخطيطي | إعادة ضبط تأثيرات جميع 60–64 |
| 73 | رمز مرتفع | تم تنفيذه فقط في mintty [ 32 ] |
| 74 | رمز سفلي | |
| 75 | لا مرتفع ولا منخفض | |
| 90–97 | اضبط لون المقدمة الساطع | غير موجود في المعيار؛ تم تنفيذه في الأصل بواسطة aixterm [ 17 ] |
| 100–107 | اختر لون خلفية ساطع |
الألوان
3 بت و 4 بت
كانت المواصفات الأصلية تتضمن 8 ألوان فقط، مع تسميتها بأسماء محددة. تحدد معلمات SGR من 30 إلى 37 لون المقدمة، بينما تحدد معلمات من 40 إلى 47 لون الخلفية. وقد طبقت العديد من المحطات الطرفية خاصية "الخط العريض" (رمز SGR 1) كلون أكثر سطوعًا بدلًا من خط مختلف، مما وفر 8 ألوان إضافية للمقدمة. عادةً، لا يمكن استخدام هذه الألوان كألوان خلفية، إلا أن عكس الفيديو (رمز SGR 7) قد يسمح بذلك أحيانًا. على سبيل المثال: للحصول على حروف سوداء على خلفية بيضاء، استخدم ESC[30;47m، وللحصول على اللون الأحمر، استخدم ESC[31m، وللحصول على اللون الأحمر الفاتح، استخدم ESC[1;31m. لإعادة ضبط الألوان إلى قيمها الافتراضية، استخدم ESC[39;49m(غير مدعوم في بعض المحطات الطرفية)، أو أعد ضبط جميع الخصائص باستخدام ESC[0m. أضافت المحطات الطرفية اللاحقة إمكانية تحديد الألوان "الساطعة" مباشرةً باستخدام المعلمات من 90 إلى 97 ومن 100 إلى 107.
يوضح الرسم البياني أدناه بعض الأمثلة على كيفية قيام المعايير الكلاسيكية ومحاكيات الطرفيات الحديثة بترجمة رموز الألوان ذات 4 بت إلى رموز ألوان ذات 24 بت.
| FG | BG | اسم | CGA/EGA/VGA | وحدة تحكم ويندوز [ ب ] | ويندوز باور شيل 1.0–6.0 [ c ] | Visual Studio Code [ d ] | وحدة تحكم ويندوز 10 [ هـ ] | تطبيق Terminal.app | معجون | mIRC | xterm | أوبونتو [ f ] | محطة إكليبس |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 30 | 40 | أسود | 0, 0, 0 | 12، 12، 12 | 0, 0, 0 | 1، 1، 1 | 0, 0, 0 | ||||||
| 31 | 41 | أحمر | 196، 0، 0 | 128، 0، 0 | 205، 49، 49 | 197، 15، 31 | 153، 0، 0 | 187، 0، 0 | 127، 0، 0 | 205، 0، 0 | 222، 56، 43 | 205، 0، 0 | |
| 32 | 42 | أخضر | 0، 196، 0 | 0، 128، 0 | 13، 188، 121 | 19، 161، 14 | 0، 166، 0 | 0، 187، 0 | 0، 147، 0 | 0، 205، 0 | 57، 181، 74 | 0، 205، 0 | |
| 33 | 43 | أصفر | 196، 126، 0 | 128، 128، 0 | 238، 237، 240 | 229، 229، 16 | 193، 156، 0 | 153، 153، 0 | 187، 187، 0 | 252، 127، 0 | 205، 205، 0 | 255، 199، 6 | 205، 205، 0 |
| 34 | 44 | أزرق | 0، 0، 196 | 0، 0، 128 | 36، 114، 200 | 0، 55، 218 | 0، 0، 178 | 0، 0، 187 | 0، 0، 127 | 0، 0، 238 [ 34 ] | 0، 111، 184 | 0، 0، 238 | |
| 35 | 45 | أرجواني | 196، 0، 196 | 128، 0، 128 | 1، 36، 86 | 188، 63، 188 | 136، 23، 152 | 178، 0، 178 | 187، 0، 187 | 156، 0، 156 | 205، 0، 205 | 118، 38، 113 | 205، 0، 205 |
| 36 | 46 | سماوي | 0، 196، 196 | 0، 128، 128 | 17، 168، 205 | 58، 150، 221 | 0، 166، 178 | 0، 187، 187 | 0، 147، 147 | 0، 205، 205 | 44، 181، 233 | 0، 205، 205 | |
| 37 | 47 | أبيض | 196، 196، 196 | 192، 192، 192 | 229، 229، 229 | 204، 204، 204 | 191، 191، 191 | 187، 187، 187 | 210، 210، 210 | 229، 229، 229 | 204، 204، 204 | 229، 229، 229 | |
| 90 | 100 | أسود لامع (رمادي) | 78، 78، 78 | 128، 128، 128 | 102، 102، 102 | 118، 118، 118 | 102، 102، 102 | 85، 85، 85 | 127، 127، 127 | 127، 127، 127 | 128، 128، 128 | 0, 0, 0 | |
| 91 | 101 | أحمر فاقع | 220، 78، 78 | 255، 0، 0 | 241، 76، 76 | 231، 72، 86 | 230، 0، 0 | 255، 85، 85 | 255، 0، 0 | ||||
| 92 | 102 | أخضر فاتح | 78، 220، 78 | 0، 255، 0 | 35، 209، 139 | 22، 198، 12 | 0، 217، 0 | 85، 255، 85 | 0، 252، 0 | 0، 255، 0 | |||
| 93 | 103 | أصفر فاقع | 243، 243، 78 | 255، 255، 0 | 245، 245، 67 | 249، 241، 165 | 230، 230، 0 | 255، 255، 85 | 255، 255، 0 | ||||
| 94 | 104 | أزرق فاتح | 78، 78، 220 | 0، 0، 255 | 59، 142، 234 | 59، 120، 255 | 0، 0، 255 | 85، 85، 255 | 0، 0، 252 | 92، 92، 255 [ 35 ] | 0، 0، 255 | 92، 92، 255 | |
| 95 | 105 | لون أرجواني فاتح | 243، 78، 243 | 255، 0، 255 | 214، 112، 214 | 180، 0، 158 | 230، 0، 230 | 255، 85، 255 | 255، 0، 255 | ||||
| 96 | 106 | أزرق فاتح | 78، 243، 243 | 0، 255، 255 | 41، 184، 219 | 97، 214، 214 | 0، 230، 230 | 85، 255، 255 | 0، 255، 255 | ||||
| 97 | 107 | أبيض ناصع | 255، 255، 255 | 229، 229، 229 | 242، 242، 242 | 230، 230، 230 | 255، 255، 255 | ||||||
8 بت
مع شيوع جداول البحث ذات 256 لونًا في بطاقات الرسومات، تمت إضافة تسلسلات الهروب للاختيار من مجموعة محددة مسبقًا من 256 لونًا: [ 36 ]
ESC[38;5; ⟨ n ⟩ m حدد لون المقدمة حيث n هو رقم من الجدول أدناه ESC[48;5; ⟨ n ⟩ m تحديد لون الخلفية 0-7: الألوان القياسية (كما في ESC [30-37 م) 8-15: ألوان عالية الكثافة (كما في ESC [90-97 م) 16-231: مكعب 6 × 6 × 6 (216 لونًا): 16 + 36 × r + 6 × g + b (0 ≤ r, g, b ≤ 5) 232-255: تدرج رمادي من الداكن إلى الفاتح في 24 خطوة
تختلف الألوان المعروضة لهذه القيم باختلاف تطبيقات الطرفيات/المحاكيات، حيث لا تحدد مواصفات ECMA-48 و ITU T.416 المعتمدة لوحة ألوان محددة لجدول البحث هذا. مع أن استخدام الصيغة المذكورة أعلاه للوحة الألوان شائع، إلا أن الخوارزمية واختيار الألوان لقيم المكعب 16-231 يختلفان بين التطبيقات. فيما يلي مثال على لوحة الألوان والخوارزمية المستخدمة في XTerm. [ 16 ] [ 37 ]
يستخدم معيار T.416 الصادر عن الاتحاد الدولي للاتصالات (ITU ) بشأن تكنولوجيا المعلومات - بنية المستندات المفتوحة (ODA) وتنسيق التبادل: بنى محتوى الأحرف [ 37 ] ":" كأحرف فاصلة بدلاً من ذلك:
ESC[38:5: ⟨ n ⟩ m حدد لون المقدمة حيث n هو رقم من الجدول أدناه ESC[48:5: ⟨ n ⟩ m تحديد لون الخلفية
| وضع 256 لونًا | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| المقدمة: ESC[38;5;#m — الخلفية: ESC[48;5;#m | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 216 لونًا | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | ||||||||||||||||||||||||||||||||||||||||||||||||
| 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | ||||||||||||||||||||||||||||||||||||||||||||||||
| 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | ||||||||||||||||||||||||||||||||||||||||||||||||
| 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | ||||||||||||||||||||||||||||||||||||||||||||||||
| 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | ||||||||||||||||||||||||||||||||||||||||||||||||
| 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | ||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
لحساب قيم RGB للألوان في الجدول أعلاه، يمكن استخدام برنامج بايثون التالي:
# اطبع قائمة بقيم الألوان الأحمر/الأخضر/الأزرق الـ 256 المستخدمة بواسطة xterm.8# مرجع:# https://github.com/ThomasDickey/ncurses-snapshots/blob/master/test/xterm-16color.dat# https://github.com/ThomasDickey/xterm-snapshots/blob/master/XTerm-col.ad# https://github.com/ThomasDickey/xterm-snapshots/blob/master/256colres.plprint ( "الألوان من 0 إلى 15 تتوافق مع تسمية ANSI و aixterm" )for code in range ( 0 , 16 ):إذا كان الرمز > 8 :المستوى = 255elif code == 7 :المستوى = 229آخر :المستوى = 205r = 127 إذا كان الرمز = 8، وإلا المستوى إذا كان ( الرمز & 1 ) لا يساوي 0، وإلا 92 إذا كان الرمز = 12، وإلا 0g = 127 إذا كان الرمز = 8، وإلا المستوى إذا كان ( الرمز & 2 ) لا يساوي 0، وإلا 92 إذا كان الرمز = 12، وإلا 0b = 127 إذا كان الرمز يساوي 8، وإلا 238 إذا كان الرمز يساوي 4 ، وإلا المستوى إذا كان ( الرمز & 4 ) لا يساوي 0 ، وإلا 0print ( f " { code : 3d } : { r : 02X } { g : 02X } { b : 02X } " )print ( "الألوان من 16 إلى 231 هي مكعب ألوان 6x6x6" )لكل لون أحمر في النطاق ( 0 ، 6 ):بالنسبة للون الأخضر في النطاق ( 0 ، 6 ):لكل لون أزرق في النطاق ( 0 ، 6 ):الرمز = 16 + ( أحمر * 36 ) + ( أخضر * 6 ) + أزرقr = red * 40 + 55 إذا كان red != 0 وإلا 0g = green * 40 + 55 إذا كان green != 0 وإلا 0b = blue * 40 + 55 إذا كان blue != 0 وإلا 0print ( f " { code : 3d } : { r : 02X } { g : 02X } { b : 02X } " )print ( "الألوان من 232 إلى 255 هي تدرج رمادي، مع استبعاد اللونين الأسود والأبيض عمداً" )for gray in range ( 0 , 24 ):المستوى = رمادي * 10 + 8الرمز = 232 + رماديprint ( f " { code : 3d } : { level : 02X } { level : 02X } { level : 02X } " )كما تم استخدام ترميز مشابه ولكنه غير متوافق مكون من 88 لونًا باستخدام نفس تسلسل الهروب، كما هو موضح في rxvt[ 38 ] .xterm-88color وهو يستخدم مكعب ألوان 4×4×4.
24 بت
مع شيوع بطاقات الرسومات "ذات الألوان الحقيقية" التي تتراوح دقتها بين 16 و24 بت، بدأت التطبيقات بدعم ألوان 24 بت. تشمل برامج محاكاة الطرفيات التي تدعم ضبط ألوان المقدمة والخلفية بدقة 24 بت باستخدام تسلسلات الهروب: Xterm، [ 17 ] و Konsole من KDE ، [ 39 ] [ 40 ] وiTerm، بالإضافة إلى جميع الطرفيات المبنية على مكتبة libvte، [ 41 ] بما في ذلك GNOME Terminal . [ 42 ]
ESC[38;2; ⟨ r ⟩ ; ⟨ g ⟩ ; ⟨ b ⟩ m حدد لون المقدمة RGB ESC[48;2; ⟨ r ⟩ ; ⟨ g ⟩ ; ⟨ b ⟩ m حدد لون خلفية RGB
تعتمد هذه الصيغة، التي طُبقت مبدئيًا في برنامج XTerm، على قراءة مواصفات ISO/IEC 8613-6، وتحديدًا على أن SGR 38 / SGR 48 متبوعًا بالمعامل "2" يُمكنه تحديد "لون مباشر" في فضاء RGB. [ 43 ] وباعتبارها أول تطبيق واسع الانتشار، فإن هذه المواصفات لقيم RGB باستخدام الفواصل المنقوطة مدعومة على نطاق واسع من قِبل برامج محاكاة الطرفيات التي تتضمن دعمًا للألوان ذات 24 بت.
كما هو الحال مع رموز الألوان ذات 8 بت ، توجد مواصفات مشابهة جدًا للألوان ذات 24 بت في معيار T.416 الصادر عن الاتحاد الدولي للاتصالات، وهو معيار بنية المستندات المفتوحة (ODA) وتنسيق التبادل: بنى محتوى الأحرف، [ 37 ] والذي تم اعتماده كمعيار ISO/IEC 8613-6، ولكنه لم يحقق نجاحًا تجاريًا. يُعد إصدار ODA أكثر تفصيلًا، وبالتالي فهو غير متوافق مع الإصدار المذكور أعلاه المفصول بفواصل منقوطة.
- تُستخدم النقطتان الرأسيتان كفواصل، بدلاً من الفاصلة المنقوطة.
- المعلمات التي تلي الرقم '2' (r و g و b) اختيارية ويمكن تركها فارغة.
- يوجد مُعرِّف مساحة لونية رئيسي. [ 17 ] لم يُدرج تعريف مُعرِّف مساحة اللونية في تلك المواصفات، لذا قد يكون فارغًا لتمثيل القيمة الافتراضية غير المُحدَّدة. بالنسبة لمواصفات ألوان CMYK، يُفسِّر برنامج mintty مُعامل مُعرِّف مساحة اللونية على أنه يُحدِّد القيمة القصوى التي تُعطى منها قيم القنوات (مثل 100 أو 255). [ 32 ]
- بالإضافة إلى القيمة '2' بعد 48 لتحديد تنسيق أحمر-أخضر-أزرق (والقيمة '5' أعلاه للألوان المفهرسة من 0 إلى 255)، توجد بدائل أخرى هي '0' للألوان المحددة من قِبل التطبيق و'1' للشفافية - ولا يحتوي أي منهما على أي معلمات إضافية؛ وتحدد القيمة '3' الألوان باستخدام مخطط سماوي-أرجواني-أصفر، والقيمة '4' لمخطط سماوي-أرجواني-أصفر-أسود، حيث يستخدم الأخير الموضع المحدد على أنه "غير مستخدم" لمكون اللون الأسود. [ 37 ]
ESC[38:2: ⟨ معرف مساحة اللون ⟩ : ⟨ أحمر ⟩ : ⟨ أخضر ⟩ : ⟨ أزرق ⟩ : ⟨ غير مستخدم ⟩ : ⟨ تفاوت مساحة اللون ⟩ : ⟨ مساحة اللون ⟩ m تحديد لون المقدمة RGB ESC[48:2: ⟨ معرف مساحة اللون ⟩ : ⟨ أحمر ⟩ : ⟨ أخضر ⟩ : ⟨ أزرق ⟩ : ⟨ غير مستخدم ⟩ : ⟨ تفاوت مساحة اللون ⟩ : ⟨ مساحة اللون ⟩ m حدد لون خلفية RGB
حيث Color-Spaceيشير إلى مساحة اللون المرتبطة بالتفاوت المحدد: 0لـ CIELUV أو 1لـ CIELAB.
تُعدّ مواصفات RGB القائمة على الفاصلة المنقوطة الأكثر انتشارًا، ولكن العديد من برامج محاكاة الطرفيات تدعم كلاً من هذه المواصفات ومتغير RGB الخاص بمعيار ITU T.416. [ 44 ] [ 45 ]
متغيرات بيئة يونكس المتعلقة بدعم الألوان
بدلاً من استخدام دعم الألوان في مكتبتي termcap وterminfo المُقدمتين في SVr3.2 (1987)، [ 46 ] استخدمت مكتبة S-Lang (الإصدار 0.99-32، يونيو 1996) متغير بيئة منفصلاً $COLORTERMللإشارة إلى ما إذا كان بإمكان مُحاكي الطرفية استخدام الألوان أم لا، وأضافت لاحقاً قيماً للإشارة إلى ما إذا كان يدعم ألوان 24 بت. [ 47 ] [ 48 ] على الرغم من ضعف توثيق هذا النظام، إلا أنه انتشر على نطاق واسع لدرجة أن فيدورا وRHEL فكرتا في استخدامه كآلية كشف أبسط وأكثر شمولاً مقارنةً بالاستعلام عن المكتبات المُحدثة. [ 49 ]
تُفعّل بعض برامج محاكاة الطرفية (مثل urxvt وKonsole) $COLORFGBGخاصية عرض نظام ألوان الطرفية (وخاصةً الخلفية الفاتحة أو الداكنة). يعود أصل هذه الخاصية إلى لغة S-Lang [ 48 ] ويستخدمها محرر النصوص vim. يرفض برنامج Gnome-terminal إضافة هذه الخاصية، لعدم وجود اتفاق على صيغة القيمة، ولعدم إمكانية تغيير القيمة عند تغيير لوحة الألوان أثناء التشغيل، بالإضافة إلى وجود تسلسلات xterm OSC 4/10/11 أكثر ملاءمةً. [ 50 ]
أصبح من المعتاد استخدام NO_COLORمتغير البيئة لتعطيل الألوان بشكل غير مشروط. [ 51 ]
تسلسلات أوامر نظام التشغيل
تم تعريف معظم تسلسلات أوامر نظام التشغيل بواسطة Xterm، ولكن العديد منها مدعوم أيضًا بواسطة برامج محاكاة طرفية أخرى. ولأسباب تاريخية، يمكن لـ Xterm إنهاء الأمر بالرمز BEL(0x07) بالإضافة إلى الرمز القياسي ST(0x9C أو 0x1B 0x5C). [ 17 ] على سبيل المثال، يسمح Xterm بتعيين اسم الأيقونة وعنوان النافذة ESC ]0;this is the title BEL.
ومن الإضافات غير التابعة لـ xterm الرابط التشعبي، ESC ]8;;link STالذي تم استخدامه في عام 2017 بواسطة VTE، [ 52 ] و iTerm2، [ 52 ] و mintty، [ 53 ] من بين برامج أخرى. [ 54 ]
تستخدم وحدة تحكم لينكس هذه الطريقة ESC ] P n rr gg bbلتغيير لوحة الألوان، والتي قد تتسبب، في حال تضمينها بشكل ثابت في تطبيق ما، في تعليق المحطات الطرفية الأخرى. [ 55 ] ومع ذلك، STسيتجاهل لينكس هذه العملية، وستشكل تسلسلًا صحيحًا يمكن تجاهله بالنسبة للمحطات الطرفية الأخرى.
تسلسلات الهروب Fs
إذا ESCتبعت هذه القيمة بايتًا في النطاق 0x60–0x7E ، فإن تسلسل الهروب يكون من النوع . يُستخدم هذا النوع لوظائف التحكم المسجلة بشكل فردي في سجل ISO-IR . [ 56 ] يُمكن الاطلاع على جدول بهذه الوظائف في معيار ISO/IEC 2022 .Fs
تسلسلات الهروب من نقطة النهاية
إذا ESCتبعت هذه القيمة بايت في النطاق 0x30-0x3F ، فإن تسلسل الهروب يكون من النوع ، وهو مخصص لما يصل إلى ستة عشر وظيفة تحكم للاستخدام الخاص. [ 15 ] : 6.5.3Fp
| اختصار | اسم | تأثير | |
|---|---|---|---|
| ESC 7 | ديسك | حفظ المؤشر من DEC | يحفظ موضع المؤشر، وحالة التشفير، وخصائص التنسيق. [ 57 ] [ 17 ] |
| ESC 8 | مركز أبحاث دي إي سي آر سي | استعادة مؤشر DEC | يستعيد موضع المؤشر، وحالة تحويل الترميز، وخصائص التنسيق من إصدار DECSC السابق إن وجدت، وإلا فإنه يعيد ضبطها جميعًا إلى قيمها الافتراضية. [ 57 ] [ 17 ] |
تسلسلات الهروب nF
إذا ESCتبعت هذه البايت بايتًا في النطاق 0x20-0x2F ، فإن تسلسل الهروب يكون من النوع . يتبع هذا البايت أي عدد من البايتات الإضافية في هذا النطاق، ثم بايت في النطاق 0x30-0x7E . تُصنف تسلسلات الهروب هذه إلى فئات فرعية بناءً على البتتين الأدنى من البايت الأول، على سبيل المثال "type " للتسلسلات التي يكون فيها البايت الأول 0x22 ؛ وبناءً على ما إذا كان البايت الأخير في النطاق 0x30-0x3F ، مما يشير إلى استخدام خاص (على سبيل المثال "type ") أو لا (على سبيل المثال "type "). [ 15 ] : 13.2.1nF2F2Fp2Ft
معظم nFtالتسلسلات مخصصة لتغيير مجموعة الأحرف الحالية، وهي مدرجة في معيار ISO/IEC 2022. وهناك تسلسلات أخرى:
| اختصار | اسم | تأثير | |
|---|---|---|---|
| ESC SP F |
|
| يجعل مفاتيح الوظائف ترسل ESC + حرف بدلاً من رموز C1 ذات 8 بت. |
| ESC SP G |
|
| يجعل مفاتيح الوظائف ترسل رموز C1 ذات 8 بت. |
إذا كان البايت الأول هو '#'، فإن التسلسلات العامة محجوزة لوظائف تحكم فردية إضافية مسجلة في معيار ISO-IR. [ 15 ] : 6.5.2 لا توجد تسلسلات من هذا القبيل مسجلة حاليًا. [ 56 ] تسلسلات الأنواع 3Fp(بما في ذلك تلك التي تبدأ بـ '#') متاحة لوظائف التحكم الخاصة. [ 15 ] : 6.5.3
| اختصار | اسم | تأثير | |
|---|---|---|---|
| ESC # 3 | دي سي دي إتش إل | حروف DEC مزدوجة الارتفاع، النصف العلوي | يجعل هذا الكود السطر الحالي يستخدم أحرفًا ضعف الطول. هذا الكود مخصص للنصف العلوي. [ 58 ] |
| ESC 4 | دي سي دي إتش إل | حروف DEC مزدوجة الارتفاع، النصف السفلي | يجعل هذا الكود السطر الحالي يستخدم أحرفًا ضعف الطول. هذا الكود مخصص للنصف السفلي. [ 58 ] |
| ESC # 5 | DECSWL | خط DEC أحادي العرض | يجعل السطر الحالي يستخدم أحرفًا بعرض واحد، وفقًا للسلوك الافتراضي. [ 59 ] [ 17 ] |
| ESC # 6 | DECDWL | خط DEC مزدوج العرض | يجعل السطر الحالي يستخدم أحرفًا مزدوجة العرض، ويتجاهل أي أحرف في النصف الثاني من السطر. [ 60 ] [ 17 ] |
أمثلة
CSI 2 J— هذا يمسح الشاشة، وفي بعض الأجهزة، يحدد موقع المؤشر في الموضع y,x 1,1 (الزاوية العلوية اليسرى).
CSI 32 mهذا يجعل النص أخضر. قد يكون اللون الأخضر داكنًا باهتًا، لذا قد ترغب في تفعيل خاصية "غامق" باستخدام التسلسل CSI 1 mالذي سيجعله أخضر فاتحًا، أو دمجهما معًا . تستخدم بعض التطبيقات حالة "غامق" لجعل الحرف فاتحًا.CSI 32 ; 1 m
CSI 0 ; 6 8 ; "DIR" ; 13 pيُعيد هذا تعيين المفتاح F10 لإرسال السلسلة "DIR" إلى مخزن لوحة المفاتيح المؤقت، ثم الضغط على مفتاح الإدخال (ENTER)، ما يُتيح عرض محتويات المجلد الحالي في سطر أوامر نظام التشغيل DOS. (خاص بملفات MS-DOS ANSI.SYS فقط). استُخدم هذا أحيانًا في برامج ANSI . هذا رمز للاستخدام الخاص (كما يُشير الحرف p)، يستخدم امتدادًا غير قياسي لإضافة مُعامل نصي. يُعتبر التسلسل الذي يلي الحرف D في المعيار مُنتهيًا عند هذا الحرف.
CSI s— هذا يحفظ موضع المؤشر. استخدام التسلسل CSI uسيعيده إلى موضعه. لنفترض أن موضع المؤشر الحالي هو 7 (y) و10 (x). CSI sسيحفظ التسلسل هذين الرقمين. الآن يمكنك الانتقال إلى موضع مؤشر مختلف، مثل 20 (y) و3 (x)، باستخدام التسلسل أو . الآن إذا استخدمت التسلسل CSI u، فسيعود موضع المؤشر إلى 7 (y) و10 (x). تتطلب بعض المحطات الطرفية تسلسلات DEC / بدلاً من ذلك، وهي مدعومة على نطاق أوسع.CSI 20 ; 3 HCSI 20 ; 3 fESC 7ESC 8
في برمجة سكريبتات الصدفة
تُستخدم رموز ANSI عادةً في أنظمة UNIX والأنظمة الشبيهة بها لتوفير تمييز بناء الجملة . على سبيل المثال، في الأنظمة المتوافقة، يقوم الأمر التالي بتلوين أسماء الملفات والمجلدات حسب نوعها.
ls --color
يمكن للمستخدمين استخدام رموز الهروب في برامجهم النصية عن طريق تضمينها كجزء من المخرجات القياسية أو الأخطاء القياسية . على سبيل المثال، يُحسّن أمر GNU sed التالي مخرجات أمر make بعرض الأسطر التي تحتوي على كلمات تبدأ بـ "WARN" بشكل معكوس ، والكلمات التي تبدأ بـ "ERR" باللون الأصفر الفاقع على خلفية حمراء داكنة ( مع تجاهل حالة الأحرف ). يتم تمييز تمثيلات الرموز. [ 61 ]
make 2 > & 1 | sed -e 's/.*\bWARN.*/ \x1b[7m & \x1b[0m /i' -e 's/.*\bERR.*/ \x1b[93;41m & \x1b[0m /i'تقوم دالة Bash التالية بإضاءة الطرفية (عن طريق إرسال رموز وضع الفيديو العكسي والعادي بالتناوب) حتى يضغط المستخدم على مفتاح. [ 62 ] ويمكن استخدامها لتنبيه المبرمج عند انتهاء أمر طويل، كما هو الحال مع الأمر . [ 63 ]make ; flasher
flasher(){whiletrue;doprintf'\e[?5h' '\e[?5l';sleep0.1;printf;read-s-n1-t1&&break;done;}
سيؤدي الأمر التالي إلى إعادة ضبط وحدة التحكم، على غرار الأمر الموجود resetعلى أنظمة لينكس الحديثة؛ ومع ذلك، ينبغي أن يعمل حتى على أنظمة لينكس القديمة وعلى متغيرات يونكس الأخرى (غير لينكس).
printf '\033c'شركة
يقوم البرنامج التالي بإنشاء جدول من الأرقام من 0 إلى 109، ويتم عرض كل منها بالتنسيق المحدد بواسطة تسلسل الهروب Select Graphic Rendition باستخدام هذا الرقم كرمز عرض رسومي.

#include <stdio.h>int main ( void ){int row , col , n ;for ( row = 0 ; row < 11 ; row ++ ) {for ( col = 0 ; col < 10 ; col ++ ) {ن = 10 * صف + عمود ؛إذا كان ( ن > 109 ) توقف ؛printf ( " \033 [%dm %3d \033 [m" , n , n );}printf ( " \n " );}أرجع 0 ؛}تسلسلات إدخال الطرفية
يؤدي الضغط على مفاتيح خاصة على لوحة المفاتيح، بالإضافة إلى إخراج العديد من تسلسلات xterm CSI أو DCS أو OSC، غالبًا إلى إنتاج تسلسل CSI أو DCS أو OSC، يتم إرساله من الجهاز الطرفي إلى الكمبيوتر كما لو أن المستخدم قام بكتابته.
عند إدخال البيانات على طرفية، يمكن إرسال ضغطات المفاتيح خارج منطقة لوحة المفاتيح الأبجدية الرقمية الرئيسية إلى المضيف كتسلسلات ANSI. بالنسبة للمفاتيح التي لها وظيفة إخراج مكافئة، مثل مفاتيح الأسهم، فإنها غالبًا ما تعكس تسلسلات الإخراج. مع ذلك، لا يوجد تسلسل إخراج مكافئ لمعظم ضغطات المفاتيح.
توجد عدة أنظمة ترميز، وللأسف، تخلط معظم المحطات الطرفية بين تسلسلات من أنظمة مختلفة، لذا يجب أن يكون برنامج المضيف قادرًا على التعامل مع تسلسلات الإدخال باستخدام أي نظام. ومما يزيد الأمر تعقيدًا، أن محطات VT الطرفية نفسها تحتوي على نظامي إدخال، الوضع العادي ووضع التطبيق ، ويمكن للتطبيق التبديل بينهما.
(قسم المسودة)
<char> -> char <esc> -> esc <esc> <esc> -> Alt-esc <esc> <char> -> ضغطة مفتاح Alt أو تسلسل رموز المفاتيح <esc> '[' -> Alt-[ <esc> '[' (<modifier>) <char> -> تسلسل رموز المفاتيح، <modifier> هو عدد عشري الرقم، والقيمة الافتراضية هي 1 (xterm) <esc> '[' (<keycode>) (';'<modifier>) '~' -> تسلسل رموز المفاتيح، <keycode> و <modifier> هي أرقام عشرية وقيمتها الافتراضية 1 (vt) إذا كان الحرف الأخير هو '~'، فيجب وجود الرقم الأول وهو رقم رمز المفتاح، أما الرقم الثاني فهو قيمة تعديل اختيارية. وإذا كان الحرف الأخير حرفًا، فإن الحرف هو قيمة رمز المفتاح، والرقم الاختياري هو قيمة التعديل.
القيمة الافتراضية للمعدِّل هي 1، وبعد طرح 1، نحصل على خريطة بتات لمفاتيح التعديل المضغوطة: Meta+ Ctrl+ Alt+⇧ Shift . على سبيل المثال، <esc>[4;2~هو + ، هو مفتاح وظيفة ، هو + .⇧ ShiftEnd<esc>[20~F9<esc>[5CCtrl→
بمعنى آخر، المُعدِّل هو مجموع الأرقام التالية:
| تم طلب المفتاح | رقم | تعليق |
|---|---|---|
| 1 | تُضاف دائمًا، أما الباقي فهو اختياري | |
| يحول | 1 | |
| (يسار) بديل | 2 | |
| يتحكم | 4 | |
| ميتا | 8 |
تسلسلات vt: <esc>[1~ - الصفحة الرئيسية <esc>[16~ - <esc>[31~ - F17 <esc>[2~ - إدخال <esc>[17~ - F6 <esc>[32~ - F18 <esc>[3~ - حذف <esc>[18~ - F7 <esc>[33~ - F19 <esc>[4~ - النهاية <esc>[19~ - F8 <esc>[34~ - F20 <esc>[5~ - PgUp <esc>[20~ - F9 <esc>[35~ - <esc>[6~ - PgDn <esc>[21~ - F10 <esc>[7~ - الصفحة الرئيسية <esc>[22~ - <esc>[8~ - نهاية <esc>[23~ - F11 <esc>[9~ - <esc>[24~ - F12 <esc>[10~ - F0 <esc>[25~ - F13 <esc>[11~ - F1 <esc>[26~ - F14 <esc>[12~ - F2 <esc>[27~ - <esc>[13~ - F3 <esc>[28~ - F15 <esc>[14~ - F4 <esc>[29~ - F16 <esc>[15~ - F5 <esc>[30~ - تسلسلات xterm: <esc>[A - لأعلى <esc>[K - <esc>[U - <esc>[B - للأسفل <esc>[L - <esc>[V - <esc>[C - يمين <esc>[M - <esc>[W - <esc>[D - يسار <esc>[N - <esc>[X - <esc>[E - <esc>[O - <esc>[Y - <esc>[F - نهاية <esc>OP - F1 <esc>[Z - <esc>[G - لوحة المفاتيح 5 <esc>OQ - F2 <esc>[H - الصفحة الرئيسية <esc>أو - F3 <esc>[I - <esc>OS - F4 <esc>[J - <esc>[T -
<esc>[Aتُشابه هذه <esc>[Dالتسلسلات تسلسلات إخراج ANSI. <modifier>عادةً ما يتم حذفها إذا لم يتم الضغط على أي مفاتيح تعديل، ولكن معظم التطبيقات تُصدرها دائمًا لـ <modifier>- . (قسم المسودة)F1F4
يحتوي برنامج Xterm على صفحة توثيق شاملة حول أنظمة تسلسل إدخال مفاتيح الوظائف والفأرة المختلفة من محطات DEC الطرفية الافتراضية (VT) وغيرها من المحطات الطرفية التي يحاكيها. [ 17 ] وقد أضاف توماس ديكي الكثير من الدعم لهذه الصفحة بمرور الوقت؛ [ 64 ] كما أنه يحتفظ بقائمة بالمفاتيح الافتراضية المستخدمة في برامج محاكاة المحطات الطرفية الأخرى للمقارنة. [ 65 ]
- في وحدة تحكم لينكس، تُولّد بعض مفاتيح الوظائف تسلسلات على شكل . يجب أن ينتهي تسلسل CSI عند .
CSI [ char[ - تُنتج الإصدارات القديمة من برنامج Terminator خطأً عند الضغط على مفتاح "-" مع مفاتيح التعديل. وقد تم نسخ هذا السلوك الخاطئ من برنامج GNOME Terminal .
SS3 1; modifierscharF1F4 - يُجيب xterm عند طلب موضع المؤشر، وعند الضغط على المفتاح مع استخدام مُعدِّلات، والتي تتعارض في هذه الحالة . يمكن تجنب ذلك باستخدام المُعدِّل الخاص ? كـ ، والذي سينعكس في الاستجابة كـ .
CSI row ; column RCSI 1 ; modifiers RF3row == 1CSI ? 6 nCSI ? row ; column R - تُضيف العديد من المحطات الطرفية
ESCأحرفًا قبل أي حرف يُكتب مع الضغط على مفتاح Alt. وهذا يُسبب غموضًا بالنسبة للأحرف الكبيرة والرموز@[\]^_، والتي تُشكل رموز C1. - يقوم Konsole بإنشاء رسائل عند الضغط على مفتاحي التعديل.
SS3 modifierscharF1F4 - تدعم بعض المحطات الطرفية، بما في ذلك iTerm2 و kitty ، الإبلاغ عن مفاتيح إضافية عبر وضع CSI u المحسّن. [ 66 ] [ 67 ]
انظر أيضاً
ملحوظات
- ↑ لاحظ أن بعض قيم n و m مكتوبة بخط مائل؛ هذه عناصر نائبة للمعاملات الرقمية، وليست أحرفًا حرفية.
- ↑ شوهد في نافذة موجه الأوامر (غير ملء الشاشة) التي تعمل في نظام التشغيل Windows 3.x وصولاً إلى cmd.exe في نظام التشغيل Windows 8.1
- ↑ يقوم اختصار PowerShell الافتراضي .lnk ، الذي لم يتغير لأكثر من عقد من الزمان، بإعادة تعيين اللونين الأصفر والأرجواني لمنح PowerShell ألوانًا مميزة للخلفية/الواجهة الأمامية مقارنةً بموجه الأوامر. [ 33 ] لم يتأثرPowerShell
- ↑ وحدة تحكم التصحيح، سمة "Dark+"
- ↑ سمة كامبل، المستخدمة اعتبارًا من إصدار ويندوز 10 رقم 1709.
- ↑ بالنسبة للمحطات الطرفية الافتراضية، من /etc/vtrgb.
مراجع
- 1 2 "المعيار ECMA-48: وظائف التحكم لأجهزة الإدخال/الإخراج التصويرية" (ملف PDF) (الطبعة الثانية ). إيكما الدولية . أغسطس 1979. نبذة تاريخية.
- ↑ ويليامز، بول (2006). "محطات الفيديو الرقمية" . VT100.net . تم الاطلاع عليه بتاريخ 17 أغسطس 2011 .
- ↑ شركة هيثكيت (1979). "كتالوج هيثكيت 1979" . شركة هيثكيت. مؤرشف من الأصل في 13 يناير 2012. تم الاطلاع عليه في 4 نوفمبر 2011 .
- ↑ "قائمة معايير FIPS المسحوبة حسب الرقم" (ملف PDF) . المعهد الوطني للمعايير والتكنولوجيا . 15 ديسمبر 2016. تاريخ الاطلاع: 2 يناير 2022 .
- ↑ "ECMA-48 — وظائف التحكم لمجموعات الأحرف المشفرة" . ECMA International .
- ↑ ISO/IEC 6429:1992 — تكنولوجيا المعلومات — وظائف التحكم لمجموعات الأحرف المشفرة . ISO .
- ↑ "جهاز الطباعة" . ويكي توثيق نظام التشغيل AmigaOS . تعريفات أوامر الطابعة . تم الاطلاع عليه بتاريخ 10 يوليو 2013 .
- ↑ هود، جيسون (2005). "معالجة تسلسلات الهروب ANSI لبرامج وحدة تحكم ويندوز" . الصفحة الرئيسية لجيسون هود . تم الاطلاع عليه بتاريخ 9 مايو 2013 .
- ↑ "colorama · PyPI" . فهرس حزم بايثون . تم الاطلاع عليه بتاريخ 27 فبراير 2022 .
- ↑ bitcrazed. "تسلسلات المحطة الطرفية الافتراضية لوحدة التحكم - وحدة تحكم ويندوز" . docs.microsoft.com . تم الاطلاع عليه بتاريخ 30 مايو 2018 .
- ↑ "مساعدة PowerShell: حول الأحرف الخاصة" . 12 يناير 2023.
- ↑ " خارطة طريق نظام Windows Console and Terminal" . مايكروسوفت. 2018. تم الاطلاع عليه في 13 مارس 2021.
يتضمن ذلك إيقاف واجهة مستخدم مضيف وحدة التحكم الكلاسيكية من موقعها الافتراضي لصالح Windows Terminal وConPTY وتسلسلات المحطة الطرفية الافتراضية.
- ↑ "أصبح Windows Terminal الآن هو البرنامج الافتراضي في Windows 11" . 18 أكتوبر 2022.
- ↑ "موجه الأوامر وWindows PowerShell لنظام التشغيل Windows 11" .
- 1 2 3 4 5 6 7 8 9 "المعيار ECMA-35: بنية رمز الأحرف وتقنيات التمديد" (ملف PDF) (الطبعة السادسة ). إيكما الدولية . 1994.
- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 "المعيار ECMA-48: وظائف التحكم لمجموعات الأحرف المشفرة" (ملف PDF) (الطبعة الخامسة ). إيكما الدولية . يونيو 1991.
- 1 2 3 4 5 6 7 8 9 10 11 12 13 موي، إدوارد؛ جيلديا، ستيفن؛ ديكي، توماس (2019). "تسلسلات التحكم في XTerm (ctlseqs)" . الجزيرة الخفية .
- ↑ فرانك دا كروز؛ كريستين جيانوني (1997). استخدام سي-كيرميت . دار النشر الرقمية. ص 278. ISBN 978-1-55558-164-0.
- ↑ "SCOSC—حفظ موضع المؤشر الحالي" . معلومات مبرمج طرفية الفيديو VT510 . DEC .
- ↑ "DECSLRM—ضبط الهوامش اليسرى واليمنى" . معلومات مبرمج طرفية الفيديو VT510 . DEC .
- ↑ "SCORC—استعادة موضع المؤشر المحفوظ" . معلومات مبرمج طرفية الفيديو VT510 . DEC .
- ↑ موي، إدوارد؛ جيلديا، ستيفن؛ ديكي، توماس. "تسلسلات التحكم في إكسترم" . وظائف تستخدم CSI، مرتبة حسب الحرف (الأحرف) الأخير . تم الاسترجاع في 4 فبراير 2022 .
- ↑ كونراد إيروين (أبريل 2013). "وضع اللصق بين قوسين " . cirw.in.
- ↑ موي، إدوارد؛ جيلديا، ستيفن؛ ديكي، توماس. "تسلسلات التحكم في XTerm" . وضع اللصق بين قوسين . تم الاسترجاع في 4 فبراير 2022 .
- ↑ "console_codes(4) - صفحة دليل لينكس" . man7.org . تم الاطلاع عليه بتاريخ 23 مارس 2018 .
- 1 2 "screen(HW)" . دليل SCO OpenServer الإصدار 5.0.7 . 11 فبراير 2003.
- ↑ "الخطأ رقم 791596 - أفكار حول الإغماء (SGR 2)" . bugzilla.gnome.org .
- 1 2 3 "خطوط سفلية متعرجة وملونة (#6382) · مشاكل · جورج ناشمان / iterm2" . جيت لاب . 11 ديسمبر 2017.
- 1 2 3 "امتدادات لبروتوكول xterm" . وثائق kitty . تم الاطلاع عليه في 1 يوليو 2020 .
- ↑ "387811 - خطوط سفلية متعرجة وملونة" . متتبع أخطاء KDE . 27 أغسطس 2022.
- ↑ "console_codes(4)" . دليل مبرمج لينكس . 5.10. مشروع صفحات دليل لينكس .
- 1 2 3 "mintty/mintty: سمات النص وعرضه" . GitHub .
- ↑ "اختصار افتراضي في ويندوز يعيد تعيين ألوان ANSI 35،36 · المشكلة رقم 4266 · PowerShell/PowerShell" . GitHub . تم الاطلاع عليه في 21 ديسمبر 2022 .
- ↑ تم التغيير من 0،0،205 في يوليو 2004 "التصحيح رقم 192 - 2004/7/12 - XFree86 4.4.99.9" .
- ↑ تم التغيير من 0،0،255 في يوليو 2004 "التصحيح رقم 192 - 2004/7/12 - XFree86 4.4.99.9" .
- ↑ ديكي، توماس إي. "أسئلة وأجوبة حول XTerm: هل يمكنني تحديد لون برقمه؟" . تم الاطلاع عليه بتاريخ 28 مارس 2025 .
- 1 2 3 4 "T.416 تكنولوجيا المعلومات - بنية المستند المفتوح (ODA) وتنسيق التبادل: بنى محتوى الأحرف" .
- ↑ ديكي، توماس إي. "أسئلة وأجوبة حول Ncurses: لماذا لا يتم جعل "xterm" مساوياً لـ "xterm-256color"؟" . تم الاطلاع عليه بتاريخ 28 مارس 2025 .
- ↑ "color-spaces.pl (نسخة من 256colors2.pl من xterm بتاريخ 11-07-1999)" . KDE. 6 ديسمبر 2006.
- ^ "اقرأني. المزيد من الألوان" . كيدي. 22 أبريل 2010.
- ↑ "تقرير الأخطاء والتصحيحات الخاصة بمكتبة libvte: دعم 16 مليون لون" . GNOME Bugzilla. 4 أبريل 2014. تم الاطلاع عليه في 5 يونيو 2016 .
- ↑ "كيفية تفعيل دعم الألوان الحقيقية 24 بت في طرفية جنوم؟ "
- ↑ "أسئلة وأجوبة NCURSES: لماذا 16 لونًا فقط (أو 256)؟ "
- ↑ كوتشكوف، أنطون (21 أغسطس 2015). " [ slang-users ] إعادة توجيه: دعم تسلسلات الهروب للألوان الحقيقية (ألوان 24 بت)" . slang-users (قائمة بريدية) . تم الاسترجاع في 15 نوفمبر 2025 .
- ↑ مارتن كيلي (محرر). "termstandard/colors" . جيت هاب . تم الاطلاع عليه بتاريخ 16 نوفمبر 2025 .
- ↑ "السجل". curs_color(3X) - التلاعب بألوان الطرفية باستخدام curses .
- ↑ "Midnight Commander: lib/tty/color-slang.c" . Fossies . مؤرشف من الأصل في 13 فبراير 2022. تم الاسترجاع في 13 فبراير 2022 .
- 1 2 ديكي، توماس إي. (2017). "NCURSES - تعليقات على لغة S" . invisible-island.net .
- ↑ "الميزات/256 طرفية ملونة - ويكي مشروع فيدورا" . مشروع فيدورا . مؤرشف من الأصل في 4 أكتوبر 2012.
- ↑ "الخطأ رقم 733423 - يرجى ضبط متغير البيئة COLORFGBG للكشف التلقائي عن الألوان" . bugzilla.gnome.org .
- ↑ "NO_COLOR" . no-color.org .
- 1 2 كوبلينجر، إيغمونت. "الروابط التشعبية (المعروفة أيضًا باسم روابط HTML) في محاكيات الطرفية" . GitHub Gists .
- ↑ "mintty/mintty: Control Sequences" . GitHub .
- ↑ كوبلينجر، إيغمونت. "اعتماد OSC 8 في محاكيات الطرفية" . جيت هاب .
- ↑ "console_codes — تسلسلات الهروب والتحكم في وحدة تحكم لينكس" . دليل مبرمج لينكس .
- 1 2 ISO-IR: السجل الدولي ISO/IEC لمجموعات الأحرف المشفرة المستخدمة مع تسلسلات الهروب (ملف PDF) . ITSCJ/ IPSJ . مؤرشف من الأصل (ملف PDF) بتاريخ 12 مايو 2023. تم الاطلاع عليه بتاريخ 12 مايو 2023 .
- 1 2 رقمي . "DECSC—حفظ المؤشر" . معلومات مبرمج طرفية الفيديو VT510 .
- 1 2 تسلسلات الهروب ANSI - VT100 / VT52 ، مؤرشفة من الأصل في 27 فبراير 2009 ، تم استرجاعها في 21 أغسطس 2020
- ↑ رقمي . "DECSWL—خط أحادي العرض، أحادي الارتفاع" . معلومات مبرمج محطة الفيديو VT510 .
- ↑ رقمي . "DECDWL—خط مزدوج العرض، أحادي الارتفاع" . معلومات مبرمج طرفية الفيديو VT510 .
- ↑ "الفصل 9. نصائح النظام" . debian.org .
- ↑ "VT100.net: دليل المستخدم الرقمي لـ VT100" . تم الاطلاع عليه بتاريخ 19 يناير 2015 .
- ↑ "باش - كيفية الحصول على إشعار عند اكتمال أوامري - اسأل بشكل مختلف" . تم الاطلاع عليه بتاريخ 19 يناير 2015 .
- ↑ ديكي، توماس. "أسئلة وأجوبة حول XTerm: مقارنة الإصدارات، عن طريق حساب عناصر التحكم" . الجزيرة الخفية . تم الاسترجاع في 25 يناير 2020 .
- ↑ ديكي، توماس (2016). "جدول مفاتيح الوظائف لبرنامج XTerm ومحاكيات الطرفية الأخرى" . الجزيرة الخفية . تم الاطلاع عليه بتاريخ 25 يناير 2020 .
- ↑ "CSI u - Documentation" . iTerm2 - بديل طرفية macOS . تم الاطلاع عليه بتاريخ 15 أغسطس 2023 .
- ↑ "التعامل الشامل مع لوحة المفاتيح في المحطات الطرفية" . kitty . تم الاسترجاع في 6 أبريل 2026 .
روابط خارجية
- المعيار ECMA-48، وظائف التحكم لمجموعات الأحرف المشفرة . ( الطبعة الخامسة، يونيو 1991 )، الرابطة الأوروبية لمصنعي أجهزة الكمبيوتر، جنيف 1991 (تم نشره أيضًا بواسطة ISO و IEC كمعيار ISO/IEC 6429)
- وثائق شركة DEC على موقع vt100.net
- "ANSI.SYS -- تسلسلات الهروب لمحاكاة طرفية ANSI" . مؤرشف من الأصل في 6 فبراير 2006. تم الاطلاع عليه في 22 فبراير 2007 .
- إكسترم / تسلسلات الهروب
- AIXterm / تسلسلات الهروب
- مجموعة من تسلسلات الهروب للمحطات الطرفية التي تتوافق بشكل غامض مع ECMA-48 وما شابهها.
- "تسلسلات الهروب ANSI" . مؤرشف من الأصل في 25 مايو 2011.
- توصية الاتحاد الدولي للاتصالات T.416 (03/93) تكنولوجيا المعلومات - بنية المستندات المفتوحة (ODA) وتنسيق التبادل: بنى محتوى الأحرف
- معايير الحاسوب
- معايير إيكما
- معايير المعهد الوطني الأمريكي للمعايير
- معايير ISO
- واجهة مستخدم نصية
