رمز الهروب 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 معيارها لصالح المعيار الدولي.

طرفية DEC VT100
محطة عرض الفيديو DEC VT100

كان جهاز 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 يُصنّف الامتدادات المستخدمة فيهما على أنها محجوزة.

دعم المنصة

محاكي طرفية Xterm

في أوائل ثمانينيات القرن العشرين، استخدمت كميات كبيرة من البرامج هذه التسلسلات مباشرةً لتحديث شاشات العرض. وشمل ذلك كل شيء على نظام 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 الشائعة (ليست قائمة شاملة)
^C0اختصارتسلسل الهروب Cاسمتأثير
^G0x07بل\aجرسيُصدر صوتاً مسموعاً.
0x08بكالوريوس العلوم\bمسافة للخلفيحرك المؤشر إلى اليسار (ولكن قد "يلتف للخلف" إذا كان المؤشر في بداية السطر).
أنا0x09HT\tفاتورة غير مدفوعةينقل المؤشر إلى اليمين إلى علامة التبويب التالية.
^J0x0ALF\nتغذية الخطينتقل إلى السطر التالي، ويقوم بتمرير الشاشة للأعلى إذا كان في أسفلها. عادةً لا يتحرك أفقيًا، مع أن البرامج لا ينبغي أن تعتمد على ذلك.
^L0x0CFF\fتغذية النموذجانقل الطابعة إلى أعلى الصفحة التالية. عادةً لا تتحرك أفقيًا، مع ذلك، لا ينبغي للبرامج الاعتماد على هذه الخاصية. يختلف تأثيرها على شاشات العرض.
^M0x0DCR\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 )، ولكن لا يتم توفير أي مساحة بهذه الطريقة.

بعض أنواع تسلسلات الهروب ANSI لعنصر Fe (مجموعة C1) (ليست قائمة شاملة)
شفرةج1اختصاراسمتأثير
ESC N0x8ESS2وردية واحدة اثناناختر حرفًا واحدًا من إحدى مجموعات الأحرف البديلة . يختار SS2 مجموعة الأحرف G2، ويختار SS3 مجموعة الأحرف G3. [ 17 ] في بيئة 7 بت، يتبع ذلك بايت واحد أو أكثر من بايتات GL (0x20–0x7F) لتحديد حرف من تلك المجموعة. [ 15 ] : 9.4 في بيئة 8 بت، قد تكون هذه البايتات بايتات GR (0xA0–0xFF). [ 15 ] : 8.4
ESC O0x8FSS3ثلاث نوبات عمل فردية
اللجنة الاقتصادية والاجتماعية لباكستان0x90DCSسلسلة التحكم بالجهازتم إنهاء العملية بواسطة ST. [ 16 ] : 5.6 تشمل استخدامات Xterm لهذا التسلسل تعريف المفاتيح المعرفة من قبل المستخدم، وطلب أو تعيين بيانات Termcap/Terminfo. [ 17 ]
خروج [0x9Bسي إس آيمُدخل تسلسل التحكميبدأ معظم التسلسلات المفيدة، وينتهي ببايت في النطاق من 0x40 إلى 0x7E. [ 16 ] : 5.4
خروج \0x9Cشارعمُنهي السلسلةيُنهي السلاسل النصية في عناصر التحكم الأخرى. [ 16 ] : 8.3.143
خروج ]0x9DOSCأوامر نظام التشغيليبدأ سلسلة تحكم ليستخدمها نظام التشغيل، وينتهي بـ ST. [ 16 ] : 8.3.89
ESC X0x98نداء استغاثةبداية السلسلةتأخذ هذه الدالة وسيطًا عبارة عن سلسلة نصية تنتهي بـ 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، أو إيقافه فورًا، أو تجاهل باقي التسلسل.

بعض تسلسلات التحكم ANSI (ليست قائمة شاملة)
الرمز [ أ ]اختصاراسمتأثير
CSI n ACUUالمؤشر للأعلىيحرك المؤشر n خلية (افتراضيًا 1) في الاتجاه المحدد. إذا كان المؤشر موجودًا بالفعل على حافة الشاشة، فلن يكون لهذا أي تأثير.
CSIn Bالعُضْوِيّمؤشر الماوس للأسفل
CSI n CCUFتحريك المؤشر للأمام
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 JEDمسح في الشاشةيمسح جزءًا من الشاشة. إذا كانت قيمة n0 تساوي صفرًا (أو غير موجودة)، فسيتم المسح من موضع المؤشر إلى نهاية الشاشة. إذا كانت قيمة n1 تساوي صفرًا، فسيتم المسح من موضع المؤشر إلى بداية الشاشة. إذا كانت قيمة n2 تساوي صفرًا، فسيتم مسح الشاشة بالكامل (مع نقل المؤشر إلى الزاوية العلوية اليسرى في ملف DOS ANSI.SYS ). إذا كانت قيمة n3 تساوي صفرًا، فسيتم مسح الشاشة بالكامل وحذف جميع الأسطر المحفوظة في مخزن التمرير (أُضيفت هذه الميزة لبرنامج xterm وهي مدعومة من قِبل تطبيقات طرفية أخرى).
CSI n Kإلامسح في السطريمسح جزءًا من السطر. إذا كانت قيمة n0 تساوي صفرًا (أو غير موجودة)، فسيتم المسح من موضع المؤشر إلى نهاية السطر. إذا كانت قيمة n1 تساوي صفرًا، فسيتم المسح من موضع المؤشر إلى بداية السطر. إذا كانت قيمة n2 تساوي صفرًا، فسيتم مسح السطر بأكمله. لا يتغير موضع المؤشر.
CSI n SSUمرر للأعلىقم بتمرير الصفحة بأكملها لأعلى بمقدار n سطرًا (افتراضيًا 1). تُضاف الأسطر الجديدة في الأسفل. (ليس ANSI.SYS )
CSI n TSDمرر لأسفلقم بتمرير الصفحة بأكملها لأسفل بمقدار n سطرًا (افتراضيًا 1). تُضاف الأسطر الجديدة في الأعلى. (ليس ANSI.SYS )
CSI n  ; m fHVPالوضع الأفقي الوضع الرأسييشبه الأمر CUP، ولكنه يُعتبر وظيفة مُؤثرة للتنسيق (مثل CR أو LF ) وليس وظيفة مُحرر (مثل CUD أو CNL). قد يؤدي هذا إلى اختلاف في طريقة التعامل في بعض أوضاع الطرفية. [ 16 ] : الملحق أ
CSI n mSGRاختر العرض الرسومييحدد ألوان ونمط الأحرف التي تتبع هذا الرمز
سي إس آي 5 آيمنفذ AUX قيد التشغيلقم بتمكين منفذ التسلسل الإضافي عادةً للطابعة التسلسلية المحلية
سي إس آي 4iمنفذ AUX مغلقتعطيل منفذ التسلسل الإضافي عادةً للطابعة التسلسلية المحلية

سي إس آي 6 إنDSRتقرير حالة الأجهزةيقوم بالإبلاغ عن موضع المؤشر (CPR) عن طريق الإرسال ESC[n;mR، حيث n هو الصف و m هو العمود.
بعض التسلسلات الخاصة الشائعة
شفرةاختصاراسمتأثير
مسلسل CSISCP، 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لا توجد سمات للرسم التخطيطيإعادة ضبط تأثيرات جميع 6064
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 بت.

FGBGاسمCGA/EGA/VGAوحدة تحكم ويندوز [ ب ]ويندوز باور شيل 1.0–6.0 [ c ]Visual Studio Code [ d ]وحدة تحكم ويندوز  10 [ هـ ]تطبيق Terminal.appمعجونmIRCxtermأوبونتو [ f ]محطة إكليبس
3040أسود0, 0, 012، 12، 120, 0, 010, 0, 0
3141أحمر196، 0128، 0205، 49، 49197، 15، 31153، 0187، 0127، 0205، 0222، 56، 43205، 0
3242أخضر196، 0128، 013، 188، 12119، 161، 14166، 0187، 0147، 0205، 057، 181، 74205، 0
3343أصفر196، 126، 0128، 128، 0238، 237، 240229، 229، 16193، 156، 0153، 153، 0187، 187، 0252، 127، 0205، 205، 0255، 199، 6205، 205، 0
3444أزرق19612836، 114، 20055، 218178187127238 [ 34 ]111، 184238
3545أرجواني196، 196128، 12836، 86188، 63، 188136، 23، 152178، 178187، 187156، 156205، 205118، 38، 113205، 205
3646سماوي196، 196128، 12817، 168، 20558، 150، 221166، 178187، 187147، 147205، 20544، 181، 233205، 205
3747أبيض196، 196، 196192، 192، 192229، 229، 229204، 204، 204191، 191، 191187، 187، 187210، 210، 210229، 229، 229204، 204، 204229، 229، 229
90100أسود لامع (رمادي)78، 78، 78128، 128، 128102، 102، 102118، 118، 118102، 102، 10285، 85، 85127، 127، 127127، 127، 127128، 128، 1280, 0, 0
91101أحمر فاقع220، 78، 78255، 0241، 76، 76231، 72، 86230، 0255، 85، 85255، 0
92102أخضر فاتح78، 220، 78255، 035، 209، 13922، 198، 12217، 085، 255، 85252، 0255، 0
93103أصفر فاقع243، 243، 78255، 255، 0245، 245، 67249، 241، 165230، 230، 0255، 255، 85255، 255، 0
94104أزرق فاتح78، 78، 22025559، 142، 23459، 120، 25525585، 85، 25525292، 92، 255 [ 35 ]25592، 92، 255
95105لون أرجواني فاتح243، 78، 243255، 255214، 112، 214180، 158230، 230255، 85، 255255، 255
96106أزرق فاتح78، 243، 243255، 25541، 184، 21997، 214، 214230، 23085، 255، 255255، 255
97107أبيض ناصع255، 255، 255229، 229، 229242، 242، 242230، 230، 230255، 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    
الألوان القياسيةألوان عالية الكثافة
 0  1  2  3  4  5  6  7  8  9 101112131415
216 لونًا
161718192021222324252627282930313233343536373839404142434445464748495051
525354555657585960616263646566676869707172737475767778798081828384858687
888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
ألوان رمادية
232233234235236237238239240241242243244245246247248249250251252253254255

لحساب قيم 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 إذا كان الرمز = وإلا المستوى إذا كان ( الرمز & 1 ) لا يساوي وإلا 92 إذا كان الرمز = 12، وإلا 0g = 127 إذا كان الرمز = وإلا المستوى إذا كان ( الرمز & 2 ) لا يساوي وإلا 92 إذا كان الرمز = 12، وإلا 0b = 127 إذا كان الرمز يساوي وإلا 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

بعض تسلسلات الهروب من النوع Fp (للاستخدام الخاص) التي يتعرف عليها جهاز VT100
اختصاراسمتأثير
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. وهناك تسلسلات أخرى:

بعض تسلسلات الهروب ANSI من النوع 0Ft (إعلان) [ 17 ] [ 15 ] : 15.2
اختصاراسمتأثير
ESC SP F
  • ACS6
  • S7C1T
  • أعلن عن بنية الكود 6
  • إرسال حرف التحكم C1 ذو 7 بتات إلى المضيف
يجعل مفاتيح الوظائف ترسل ESC + حرف بدلاً من رموز C1 ذات 8 بت.
ESC SP G
  • ACS7
  • S8C1T
  • أعلن عن بنية الكود 7
  • إرسال حرف التحكم C1 ذو 8 بت إلى المضيف
يجعل مفاتيح الوظائف ترسل رموز C1 ذات 8 بت.

إذا كان البايت الأول هو '#'، فإن التسلسلات العامة محجوزة لوظائف تحكم فردية إضافية مسجلة في معيار ISO-IR. [ 15 ] : 6.5.2 لا توجد تسلسلات من هذا القبيل مسجلة حاليًا. [ 56 ] تسلسلات الأنواع 3Fp(بما في ذلك تلك التي تبدأ بـ '#') متاحة لوظائف التحكم الخاصة. [ 15 ] : 6.5.3

بعض تسلسلات الهروب من النوع 3Fp (للاستخدام الخاص) التي يتعرف عليها جهاز VT100
اختصاراسمتأثير
ESC # 3دي سي دي إتش إلحروف DEC مزدوجة الارتفاع، النصف العلوييجعل هذا الكود السطر الحالي يستخدم أحرفًا ضعف الطول. هذا الكود مخصص للنصف العلوي. [ 58 ]
ESC 4دي سي دي إتش إلحروف DEC مزدوجة الارتفاع، النصف السفلييجعل هذا الكود السطر الحالي يستخدم أحرفًا ضعف الطول. هذا الكود مخصص للنصف السفلي. [ 58 ]
ESC # 5DECSWLخط DEC أحادي العرضيجعل السطر الحالي يستخدم أحرفًا بعرض واحد، وفقًا للسلوك الافتراضي. [ 59 ] [ 17 ]
ESC # 6DECDWLخط 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 ]

انظر أيضاً

ملحوظات

  1. لاحظ أن بعض قيم n و m مكتوبة بخط مائل؛ هذه عناصر نائبة للمعاملات الرقمية، وليست أحرفًا حرفية.
  2. شوهد في نافذة موجه الأوامر (غير ملء الشاشة) التي تعمل في نظام التشغيل Windows 3.x وصولاً إلى cmd.exe في نظام التشغيل Windows 8.1
  3. يقوم اختصار PowerShell الافتراضي .lnk ، الذي لم يتغير لأكثر من عقد من الزمان، بإعادة تعيين اللونين الأصفر والأرجواني لمنح PowerShell ألوانًا مميزة للخلفية/الواجهة الأمامية مقارنةً بموجه الأوامر. [ 33 ]  لم يتأثرPowerShell
  4. وحدة تحكم التصحيح، سمة "Dark+"
  5. سمة كامبل، المستخدمة اعتبارًا من إصدار ويندوز 10 رقم 1709.
  6. بالنسبة للمحطات الطرفية الافتراضية، من /etc/vtrgb.

مراجع

  1. 1 2 "المعيار ECMA-48: وظائف التحكم لأجهزة الإدخال/الإخراج التصويرية" (ملف PDF) (الطبعة الثانية  ). إيكما الدولية . أغسطس 1979. نبذة تاريخية.
  2. ويليامز، بول (2006). "محطات الفيديو الرقمية" . VT100.net . تم الاطلاع عليه بتاريخ 17 أغسطس 2011 .
  3. شركة هيثكيت (1979). "كتالوج هيثكيت 1979" . شركة هيثكيت. مؤرشف من الأصل في 13 يناير 2012. تم الاطلاع عليه في 4 نوفمبر 2011 .
  4. "قائمة معايير FIPS المسحوبة حسب الرقم" (ملف PDF) . المعهد الوطني للمعايير والتكنولوجيا . 15 ديسمبر 2016. تاريخ الاطلاع: 2 يناير 2022 .
  5. "ECMA-48 — وظائف التحكم لمجموعات الأحرف المشفرة" . ECMA International .
  6. ISO/IEC 6429:1992 — تكنولوجيا المعلومات — وظائف التحكم لمجموعات الأحرف المشفرة . ISO .
  7. "جهاز الطباعة" . ويكي توثيق نظام التشغيل AmigaOS . تعريفات أوامر الطابعة . تم الاطلاع عليه بتاريخ 10 يوليو 2013 .
  8. هود، جيسون (2005). "معالجة تسلسلات الهروب ANSI لبرامج وحدة تحكم ويندوز" . الصفحة الرئيسية لجيسون هود . تم الاطلاع عليه بتاريخ 9 مايو 2013 .
  9. "colorama · PyPI" . فهرس حزم بايثون . تم الاطلاع عليه بتاريخ 27 فبراير 2022 .
  10. bitcrazed. "تسلسلات المحطة الطرفية الافتراضية لوحدة التحكم - وحدة تحكم ويندوز" . docs.microsoft.com . تم الاطلاع عليه بتاريخ 30 مايو 2018 .
  11. "مساعدة PowerShell: حول الأحرف الخاصة" . 12 يناير 2023.
  12. " خارطة طريق نظام Windows Console and Terminal" . مايكروسوفت. 2018. تم الاطلاع عليه في 13 مارس 2021. يتضمن ذلك إيقاف واجهة مستخدم مضيف وحدة التحكم الكلاسيكية من موقعها الافتراضي لصالح Windows Terminal وConPTY وتسلسلات المحطة الطرفية الافتراضية.
  13. "أصبح Windows Terminal الآن هو البرنامج الافتراضي في Windows 11" . 18 أكتوبر 2022.
  14. "موجه الأوامر وWindows PowerShell لنظام التشغيل Windows 11" .
  15. 1 2 3 4 5 6 7 8 9 "المعيار ECMA-35: بنية رمز الأحرف وتقنيات التمديد" (ملف PDF) (الطبعة السادسة ). إيكما الدولية . 1994. 
  16. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 "المعيار ECMA-48: وظائف التحكم لمجموعات الأحرف المشفرة" (ملف PDF) (الطبعة الخامسة ). إيكما الدولية . يونيو 1991. 
  17. 1 2 3 4 5 6 7 8 9 10 11 12 13 موي، إدوارد؛ جيلديا، ستيفن؛ ديكي، توماس (2019). "تسلسلات التحكم في XTerm (ctlseqs)" . الجزيرة الخفية .
  18. فرانك دا كروز؛ كريستين جيانوني (1997). استخدام سي-كيرميت . دار النشر الرقمية. ص 278. ISBN  978-1-55558-164-0.
  19. "SCOSC—حفظ موضع المؤشر الحالي" . معلومات مبرمج طرفية الفيديو VT510 . DEC .
  20. "DECSLRM—ضبط الهوامش اليسرى واليمنى" . معلومات مبرمج طرفية الفيديو VT510 . DEC .
  21. "SCORC—استعادة موضع المؤشر المحفوظ" . معلومات مبرمج طرفية الفيديو VT510 . DEC .
  22. موي، إدوارد؛ جيلديا، ستيفن؛ ديكي، توماس. "تسلسلات التحكم في إكسترم" . وظائف تستخدم CSI، مرتبة حسب الحرف (الأحرف) الأخير . تم الاسترجاع في 4 فبراير 2022 .
  23. كونراد إيروين (أبريل 2013). "وضع اللصق بين قوسين " . cirw.in.
  24. موي، إدوارد؛ جيلديا، ستيفن؛ ديكي، توماس. "تسلسلات التحكم في XTerm" . وضع اللصق بين قوسين . تم الاسترجاع في 4 فبراير 2022 .
  25. "console_codes(4) - صفحة دليل لينكس" . man7.org . تم الاطلاع عليه بتاريخ 23 مارس 2018 .
  26. 1 2 "screen(HW)" . دليل SCO OpenServer الإصدار 5.0.7 . 11 فبراير 2003.
  27. "الخطأ رقم 791596 - أفكار حول الإغماء (SGR 2)" . bugzilla.gnome.org .
  28. 1 2 3 "خطوط سفلية متعرجة وملونة (#6382) · مشاكل · جورج ناشمان / iterm2" . جيت لاب . 11 ديسمبر 2017.
  29. 1 2 3 "امتدادات لبروتوكول xterm" . وثائق kitty . تم الاطلاع عليه في 1 يوليو 2020 .
  30. "387811 - خطوط سفلية متعرجة وملونة" . متتبع أخطاء KDE . 27 أغسطس 2022.
  31. "console_codes(4)" . دليل مبرمج لينكس . 5.10. مشروع صفحات دليل لينكس .
  32. 1 2 3 "mintty/mintty: سمات النص وعرضه" . GitHub .
  33. "اختصار افتراضي في ويندوز يعيد تعيين ألوان ANSI 35،36 · المشكلة رقم 4266 · PowerShell/PowerShell" . GitHub . تم الاطلاع عليه في 21 ديسمبر 2022 .
  34. تم التغيير من 0،205 في يوليو 2004 "التصحيح رقم 192 - 2004/7/12 - XFree86 4.4.99.9" .
  35. تم التغيير من 0،255 في يوليو 2004 "التصحيح رقم 192 - 2004/7/12 - XFree86 4.4.99.9" .
  36. ديكي، توماس إي. "أسئلة وأجوبة حول XTerm: هل يمكنني تحديد لون برقمه؟" . تم الاطلاع عليه بتاريخ 28 مارس 2025 .
  37. 1 2 3 4 "T.416 تكنولوجيا المعلومات - بنية المستند المفتوح (ODA) وتنسيق التبادل: بنى محتوى الأحرف" .
  38. ديكي، توماس إي. "أسئلة وأجوبة حول Ncurses: لماذا لا يتم جعل "xterm" مساوياً لـ "xterm-256color"؟" . تم الاطلاع عليه بتاريخ 28 مارس 2025 .
  39. "color-spaces.pl (نسخة من 256colors2.pl من xterm بتاريخ 11-07-1999)" . KDE. 6 ديسمبر 2006.
  40. ^ "اقرأني. المزيد من الألوان" . كيدي. 22 أبريل 2010.
  41. "تقرير الأخطاء والتصحيحات الخاصة بمكتبة libvte: دعم 16 مليون لون" . GNOME Bugzilla. 4 أبريل 2014. تم الاطلاع عليه في 5 يونيو 2016 .
  42. "كيفية تفعيل دعم الألوان الحقيقية 24 بت في طرفية جنوم؟ "
  43. "أسئلة وأجوبة NCURSES: لماذا 16 لونًا فقط (أو 256)؟ "
  44. كوتشكوف، أنطون (21 أغسطس 2015). " [ slang-users ] إعادة توجيه: دعم تسلسلات الهروب للألوان الحقيقية (ألوان 24 بت)" . slang-users (قائمة بريدية) . تم الاسترجاع في 15 نوفمبر 2025 .
  45. مارتن كيلي (محرر). "termstandard/colors" . جيت هاب . تم الاطلاع عليه بتاريخ 16 نوفمبر 2025 .
  46. "السجل". curs_color(3X) - التلاعب بألوان الطرفية باستخدام curses .
  47. "Midnight Commander: lib/tty/color-slang.c" . Fossies . مؤرشف من الأصل في 13 فبراير 2022. تم الاسترجاع في 13 فبراير 2022 .
  48. 1 2 ديكي، توماس إي. (2017). "NCURSES - تعليقات على لغة S" . invisible-island.net .
  49. "الميزات/256 طرفية ملونة - ويكي مشروع فيدورا" . مشروع فيدورا . مؤرشف من الأصل في 4 أكتوبر 2012.
  50. "الخطأ رقم 733423 - يرجى ضبط متغير البيئة COLORFGBG للكشف التلقائي عن الألوان" . bugzilla.gnome.org .
  51. "NO_COLOR" . no-color.org .
  52. 1 2 كوبلينجر، إيغمونت. "الروابط التشعبية (المعروفة أيضًا باسم روابط HTML) في محاكيات الطرفية" . GitHub Gists .
  53. "mintty/mintty: Control Sequences" . GitHub .
  54. كوبلينجر، إيغمونت. "اعتماد OSC 8 في محاكيات الطرفية" . جيت هاب .
  55. "console_codes — تسلسلات الهروب والتحكم في وحدة تحكم لينكس" . دليل مبرمج لينكس .
  56. 1 2 ISO-IR: السجل الدولي ISO/IEC لمجموعات الأحرف المشفرة المستخدمة مع تسلسلات الهروب (ملف PDF) . ITSCJ/ IPSJ . مؤرشف من الأصل (ملف PDF) بتاريخ 12 مايو 2023. تم الاطلاع عليه بتاريخ 12 مايو 2023 .
  57. 1 2 رقمي . "DECSC—حفظ المؤشر" . معلومات مبرمج طرفية الفيديو VT510 .
  58. 1 2 تسلسلات الهروب ANSI - VT100 / VT52 ، مؤرشفة من الأصل في 27 فبراير 2009 ، تم استرجاعها في 21 أغسطس 2020
  59. رقمي . "DECSWL—خط أحادي العرض، أحادي الارتفاع" . معلومات مبرمج محطة الفيديو VT510 .
  60. رقمي . "DECDWL—خط مزدوج العرض، أحادي الارتفاع" . معلومات مبرمج طرفية الفيديو VT510 .
  61. "الفصل 9. نصائح النظام" . debian.org .
  62. "VT100.net: دليل المستخدم الرقمي لـ VT100" . تم الاطلاع عليه بتاريخ 19 يناير 2015 .
  63. "باش - كيفية الحصول على إشعار عند اكتمال أوامري - اسأل بشكل مختلف" . تم الاطلاع عليه بتاريخ 19 يناير 2015 .
  64. ديكي، توماس. "أسئلة وأجوبة حول XTerm: مقارنة الإصدارات، عن طريق حساب عناصر التحكم" . الجزيرة الخفية . تم الاسترجاع في 25 يناير 2020 .
  65. ديكي، توماس (2016). "جدول مفاتيح الوظائف لبرنامج XTerm ومحاكيات الطرفية الأخرى" . الجزيرة الخفية . تم الاطلاع عليه بتاريخ 25 يناير 2020 .
  66. "CSI u - Documentation" . iTerm2 - بديل طرفية macOS . تم الاطلاع عليه بتاريخ 15 أغسطس 2023 .
  67. "التعامل الشامل مع لوحة المفاتيح في المحطات الطرفية" . kitty . تم الاسترجاع في 6 أبريل 2026 .