تسلسلات هروب أنسي

تسلسلات هروب أنسي أو شيفرة هروب أنسي أو شيفرة الهروب وفق المعيار الأمريكي الوطني ، هي معيار يُستخدم في الإشارة داخل النطاق للتحكم في موضع المؤشر، ولون النص، وتنسيق الخط، وخيارات أخرى على الطرفيات المرئية ومحاكيات الطرفية. تُدرج داخل النص سلاسل معينة من البايتات، يبدأ معظمها بمحرف الهروب متبوعًا بمحرف حصر، وتُفسَّر هذه السلاسل من قبل الطرفية على أنها أوامر تُنفَّذ، وليس كنص يُعرض حرفيًا.

قُدِّمت تسلسلات أنسي في سبعينيات القرن العشرين كبديل لتسلسلات التحكم الخاصة بالشركات المُصنِّعة، وسرعان ما انتشرت في سوق معدات الحاسوب بحلول أوائل الثمانينيات. وعلى الرغم من أن الطرفيات النصية المادية أصبحت نادرة في القرن الحادي والعشرين، فإن أهمية معيار أنسي ما زالت قائمة، نظرًا لأن الغالبية العظمى من محاكيات الطرفية ووحدات الأوامر تفسر على الأقل جزءًا من هذا المعيار.

 التاريخ 
أضاف تقريبًا جميع مصنِّعي الطرفيات المرئية تسلسلات هروب خاصة بالشركة المصنعة لتنفيذ عمليات مثل وضع المؤشر في مواضع عشوائية على الشاشة. من الأمثلة على ذلك طرفية VT52، التي سمحت بوضع المؤشر في موضع x,y على الشاشة عبر إرسال المحرف ، متبوعًا بمحرف ، ثم محرفين يمثلان القيم العددية x وy مضافًا إليهما 32 (وبالتالي تبدأ من محرف المسافة في أسكي وتتجنب محارف التحكم). وكانت هازلتين 1500 تحتوي على ميزة مشابهة، تُفعَّل باستخدام ، و ثم موضعي X وY مفصولين بفاصلة. وعلى الرغم من أن الطرفيتين كانتا تؤديان نفس الوظيفة، إلا أن تسلسلات التحكم المستخدمة فيهما كانت مختلفة.

ونظرًا لاختلاف هذه التسلسلات من طرفية إلى أخرى، كان لا بد من إنشاء مكتبات معقدة مثل تيرمكامب ("قدرات الطرفية")، وأدوات مثل تبوب، حتى تتمكن البرامج من استخدام نفس واجهة برمجة التطبيقات للعمل مع أي طرفية. بالإضافة إلى ذلك، فإن العديد من هذه الطرفيات كانت تتطلب إرسال الأرقام (مثل الصف والعمود) على هيئة القيم الثنائية للمحارف؛ الأمر الذي كان صعبًا في بعض لغات البرمجة، أو في الأنظمة التي لا تستخدم ASCII داخليًا، حيث يصعب تحويل رقم إلى المحرف الصحيح.

حاول معيار أنسي معالجة هذه المشكلات من خلال وضع مجموعة أوامر تستخدمها جميع الطرفيات، مع اشتراط إرسال جميع البيانات الرقمية كأرقام ASCII. وكان أول معيار في هذه السلسلة هو ECMA-48، الذي اعتُمد عام 1976. وكان امتدادًا لسلسلة من معايير ترميز المحارف، أولها آيزو/آي إي سي 646 لعام 1965، وهو معيار من 7 بتات اشتُق منه آيزو/آي إي سي 646. أما اسم "تسلسل الهروب ANSI" فقد ظهر عام 1979 عندما اعتمد المعهد الأمريكي للمعايير الوطنية المعيار أنسي X3.64. وقد تعاونت لجنة أنسي X3L2 مع لجنة ECMA TC 1 لإنتاج معايير متطابقة تقريبًا. وتم دمج هذين المعيارين في معيار دولي هو ISO 6429. وفي عام 1994، سحبت أنسي معيارها لصالح المعيار الدولي.

تصغير|طرفية العرض المرئي DEC VT100.|alt=طرفية DEC VT100
أول طرفية عرض مرئي شائعة دعمت هذه التسلسلات كانت ديجيتال إكوبمينت VT100، التي قُدّمت عام 1978. وقد حقق هذا الطراز نجاحًا كبيرًا في السوق، مما أدى إلى ظهور عدد كبير من النسخ المقلَّدة لطرفية VT100، وكان من أوائلها وأشهرها الطرفية Zenith Z-89 الأرخص سعرًا في عام 1979. وظهرت طرفيات أخرى مثل Qume QVT-108، وTelevideo TVI-970، وWyse WY-99GT، بالإضافة إلى أوضاع اختيارية مثل "VT100" أو "VT103" أو "أنسي" بدرجات متفاوتة من التوافق في العديد من العلامات التجارية الأخرى. وقد أدت شعبية هذه الطرفيات تدريجيًا إلى افتراض معظم البرمجيات (وخاصة نظام لوحة البيانات والخدمات الإلكترونية الأخرى) أن تسلسلات الهروب مدعومة، مما أدى إلى دعمها في جميع الطرفيات الجديدة تقريبًا، وكذلك في برامج المحاكاة.

وفي عام 1981، اعتُمد معيار أنسي X3.64 للاستخدام في الحكومة الأمريكية عبر منشور المعايير الاتحادية لمعالجة المعلومات رقم 86. ولاحقًا، توقفت الحكومة الأمريكية عن تكرار معايير الصناعة، ولذلك تم سحب المنشور رقم 86.

وقد تم تحديث ECMA-48 عدة مرات، وهو حاليًا في الإصدار الخامس منذ عام 1991. وقد اعتمدته أيضًا المنظمة الدولية للمعايير واللجنة الكهرتقنية الدولية كمعيار ISO/IEC 6429. وقد تبنته المعايير الصناعية اليابانية كذلك تحت اسم JIS X 0211.

ومن المعايير ذات الصلة: الاتحاد الدولي للاتصالات، ومعيار Teletex، ومعيار ISO/IEC 8613، وهو معيار بنية الوثيقة المفتوحة (خاصة ISO/IEC 8613-6 أو ITU T.416). تشترك هذه الأنظمة في العديد من تسلسلات الهروب مع نظام ANSI، مع امتدادات قد لا تكون ذات معنى للطرفيات الحاسوبية. ومع أن النظامين سرعان ما خرجا من الاستخدام، إلا أن معيار ECMA-48 ما زال يحتفظ بهذه الامتدادات كـ "محجوزة".

 الدعم على المنصات 

تصغير|محاكي الطرفية Xterm.|alt=محاكي الطرفية Xtermفي أوائل ثمانينيات القرن العشرين، استخدم عدد كبير من البرمجيات هذه التسلسلات مباشرة لتحديث شاشات العرض. وشمل ذلك كل شيء تقريبًا على نظام ذاكرة افتراضية مفتوح (والذي افترض وجود طرفيات DEC)، ومعظم البرمجيات المصممة لتكون قابلة للنقل على حواسيب سي بي / م المنزلية، بل وحتى الكثير من برامج يونكس نظرًا لأن استخدامها كان أسهل من مكتبات تيرمكامب، مثل الأمثلة على البرمجة النصية في الصدفة التي تظهر لاحقًا في هذه المقالة.

غالبًا ما تدعم محاكيات الطرفيات التي تتواصل مع أجهزة بعيدة تسلسلات أنسي الهروب. يشمل ذلك أي برنامج كُتب للتواصل مع أنظمة لوحة الإعلانات على الحواسيب المنزلية والشخصية. كما أن محاكيات الطرفيات على أنظمة يونكس مثل xterm يمكنها التواصل مع البرمجيات التي تعمل على نفس الجهاز، وبالتالي يمكن للبرمجيات العاملة ضمن بيئة X11 عبر محاكي طرفية أن تفترض إمكانية استخدام هذه التسلسلات.

ومع تطور قدرات الحواسيب، بدأت الشاشات المدمجة تدعم هذه التسلسلات أيضًا، مما سمح للبرمجيات بأن تكون قابلة للنقل بين أنظمة CP/M. كما وُجدت محاولات لتوسيع تسلسلات الهروب لتشمل دعم الطابعات واستخدامها كصيغة مبكرة لتخزين المستندات مشابهة لـ PDF، أي هندسة المستندات المفتوحة .

 نظام دوس وويندوز 
لم يدعم حاسوب آي بي إم بي سي، الذي تم طرحه عام 1981، هذه التسلسلات أو أي تسلسلات هروب أخرى لتحديث الشاشة. فقد كانت قلة من محارف التحكم (مثل بيل، إرجاع الحامل، سطر جديد، مفتاح إرجاع) تُفسّر من قبل نظام بيوس الأساسي فقط. وكان يجب تنفيذ أي تأثيرات عرض من خلال استدعاءات بيوس، والتي كانت بطيئة جدًا، أو عبر التلاعب المباشر بأجهزة حاسوب آي بي إم بي سي. وقد أدى ذلك إلى جعل البرمجيات المعقدة غير قابلة للنقل، وفرض الحاجة إلى تكرار تفاصيل العتاد في الحواسيب المتوافقة مع آي بي إم.

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

لم تكن وحدة تحكم ويندوز تدعم تسلسلات هروب أنسي، كما أن مايكروسوفت لم توفّر وسيلة لتفعيلها. وقد ظهرت بدائل مثل تي سي سي من JP Software (وكان يُعرف سابقًا بـ 4NT)، وبرنامج أنسي.كوم من مايكل جي. ميفورد، و من جيسون هود، بالإضافة إلى كونسول إمولاتور من Maximus5، والتي مكّنت دعم تسلسلات أنسي. كما استخدمت برمجيات مثل مكتبة colorama في Python وسيج وين تقنيات لمعالجة النصوص أثناء تنفيذها، حيث كانت تحلل تسلسلات أنسي وتقوم بمحاكاتها عبر استدعاءات نظام ويندوز.

وفي عام 2016، أصدرت مايكروسوفت تحديثًا لنظام ويندوز 10 ضمن تاريخ إصدارات ويندوز 10، وقد تضمّن هذا التحديث بشكل غير متوقع دعمًا لتسلسلات هروب ANSI، وذلك بعد أكثر من ثلاثين عامًا على إطلاق نظام ويندوز. وقد تم تنفيذ هذا التحديث جنبًا إلى جنب مع نظام ويندوز الفرعي للينكس، ويبدو أن الهدف منه كان السماح للبرمجيات الطرفية المبنية على شبيه يونكس باستخدام وحدة تحكم ويندوز. وقد فعّل PowerShell 5.1 هذا الدعم افتراضيًا، بينما مكّن PowerShell 6 تضمين رمز ESC اللازم ضمن سلسلة نصية باستخدام .

يدعم طرفية ويندوز، الذي تم تقديمه في 2019، هذه التسلسلات افتراضيًا، وتنوي مايكروسوفت استبدال وحدة تحكم ويندوز بمحطة طرفية لنظام التشغيل ويندوز.

 رموز التحكم C0 

يفترض معظم المستخدمين بعض الوظائف المرتبطة ببعض المحارف أحادية البايت. وقد تم تعريف مجموعة رموز التحكم C0 مبدئيًا كجزء من معيار أسكي، وهي تُعرف الآن افتراضيًا ضمن معيار آيزو 6429 (المعروف أيضًا باسم ECMA-48)، مما يجعلها جزءًا من نفس المعيار الذي يضم مجموعة C1 المستخدمة ضمن تسلسلات هروب أنسي (على الرغم من أن آيزو 2022 يسمح باستخدام مجموعة C0 من آيزو 6429 دون مجموعة C1 منه، والعكس صحيح، بشرط أن يكون 0x1B دائمًا هو رمز الهروب ESC). وتُستخدم هذه الرموز لتقليل كمية البيانات المنقولة، أو لتنفيذ بعض الوظائف التي لا يمكن تنفيذها باستخدام تسلسلات الهروب:

+ رموز التحكم C0 الشائعة (ليست قائمة شاملة) ^  C0  الاختصار  الاسم  التأثير   0x07    جرس (Bell)  يُصدر صوتًا مسموعًا.   0x08    التراجع (Backspace)  يُحرّك المؤشر إلى اليسار (وقد "يلتف للخلف" إذا كان المؤشر في بداية السطر).   0x09    الجدولة الأفقية (Tab)  يُحرّك المؤشر إلى اليمين نحو نقطة التبويب التالية.   0x0A    تغذية سطر (Line Feed)  ينتقل إلى السطر التالي، ويُمرر العرض إلى الأعلى إذا كان في أسفل الشاشة. عادةً لا يُغيّر الموقع أفقيًا، رغم أنه لا ينبغي للبرامج الاعتماد على هذا.   0x0C    تغذية نموذج (Form Feed)  يُحرّك الطابعة إلى أعلى الصفحة التالية. عادةً لا يُغيّر الموقع أفقيًا، لكن تأثيره على الطرفيات المرئية يختلف.   0x0D     (Carriage Return)  يُحرّك المؤشر إلى العمود صفر.   0x1B    هروب (Escape)  يبدأ جميع تسلسلات الهروب.

تختلف تسلسلات الهروب في الطول. ويُحدَّد الشكل العام لتسلسل هروب متوافق مع أنسي من قِبل المعهد الأمريكي للمعايير الوطنية (وهو ما يعادل ECMA-35 أو ISO/IEC 2022). تتكون تسلسلات الهروب فقط من بايتات ضمن النطاق  (جميع محارف أسكي غير الخاصة بالتحكم)، ويمكن تحليلها دون الحاجة إلى النظر للأمام. أما السلوك الناتج عند مواجهة محرف تحكم، أو بايت ذي البت الأعلى مُفعّل، أو بايت لا يشكل جزءًا من أي تسلسل صحيح قبل الوصول إلى النهاية، فهو غير معرف.

 تسلسلات الهروب من النوع Fe 

إذا تبِعَت  بايت يقع في النطاق من 0x40 إلى 0x5F، فإن تسلسل الهروب يُعد من النوع . وتُحال عملية تفسيره إلى معيار رموز التحكم من نوع C1 المعمول به. وبناءً على ذلك، تتبع جميع تسلسلات الهروب التي تتوافق مع رموز التحكم C1 من أنسي X3.64 / ECMA-48 هذا الشكل.

يشير المعيار إلى أنه في البيئات التي تستخدم 8 بت، يمكن تمثيل دوال التحكم المقابلة لتسلسلات الهروب من النوع  (تلك التابعة لمجموعة رموز التحكم C1) كبايتات منفردة تقع في النطاق 0x80–0x9F. وهذا ممكن في ترميزات المحارف المتوافقة مع مواصفات الترميز ثُماني البت التي يحددها معيار ISO 2022، مثل سلسلة آيزو/آي إي سي 8859. ومع ذلك، فإن ترميزات المحارف المستخدمة في الأجهزة الحديثة مثل صيغة التحويل الموحد-8 (UTF-8) أو ويندوز-1252 كثيرًا ما تُخصّص هذه الرموز لاستخدامات أخرى، لذا يُستخدم غالبًا تسلسل مكوّن من بايتين فقط. في حالة UTF-8، يؤدي تمثيل رمز تحكم من نوع C1 عبر كتلة عناصر التحكم C1 واللاتينية التكميلية-1 إلى توليد رمز ثنائي البايت مختلف (مثال:  للمحرف )، ولكن لا يتم توفير مساحة بهذه الطريقة.

+ بعض تسلسلات الهروب أنسي من النوع  (عناصر من مجموعة C1) — ليست قائمة شاملة الرمز  C1  الاختصار  الاسم  التأثير       التحول الفردي الثاني (Single Shift Two)  يختار حرفًا مفردًا من إحدى مجموعات المحارف البديلة. يختار SS2 مجموعة G2، ويختار SS3 مجموعة G3. في بيئة 7-بت، يتبع هذا برموز GL (0x20–0x7F) تمثل الحرف من تلك المجموعة. في بيئة 8-بت، قد تكون هذه الرموز من نوع GR (0xA0–0xFF).       التحول الفردي الثالث (Single Shift Three)       سلسلة التحكم بالجهاز (Device Control String)  تُنهى بـ ST. تشمل استخدامات xterm لهذا التسلسل تعريف مفاتيح معرفة من قبل المستخدم، وطلب أو ضبط بيانات Termcap/Terminfo.       مقدمة تسلسل التحكم (Control Sequence Introducer)  يبدأ معظم التسلسلات المفيدة، وينتهي ببايت ضمن النطاق من 0x40 إلى 0x7E.       محدد نهاية السلسلة (String Terminator)  يُنهى سلاسل النصوص في أوامر التحكم الأخرى.       أمر نظام التشغيل (Operating System Command)  يبدأ سلسلة تحكم لاستخدام نظام التشغيل، وتنتهي بـ ST.       بداية سلسلة (Start of String)  تأخذ هذه الرموز وسيطًا عبارة عن سلسلة نصية تُنهى بـ ST. تحدد التطبيقات أو سياسات الخصوصية استخدامات هذه التسلسلات. نادرًا ما تُطبّق هذه الوظائف، وغالبًا ما يتجاهلها xterm. تسمح بعض عملاء كيرميت للسيرفر بتنفيذ أوامر كيرميت تلقائيًا على العميل عن طريق تضمينها في تسلسلات APC، مما قد يُشكل خطرًا أمنيًا إذا كان السيرفر غير موثوق به.       رسالة خصوصية (Privacy Message)        (Application Program Command)

  أوامر مُعرّف تسلسل التحكم (CSI) 

بالنسبة لأوامر مُعرّف تسلسل التحكم، أو CSI، فإن الرمز  (ويُكتب في بعض لغات البرمجة كـ  أو  أو ) يتبعه أي عدد (بما في ذلك الصفر) من «بايتات المعامل» ضمن النطاق 0x30–0x3F (أي الحروف 0–9:;<=>? في ASCII)، ثم أي عدد من «بايتات التوسيط» في النطاق 0x20–0x2F (أي المسافة وعلامات الترقيم )، وأخيرًا بايت واحد «نهائي» في النطاق 0x40–0x7E (أي الحروف @A–Z[\]^_`a–z{|}~ في ASCII).

جميع التسلسلات الشائعة تستخدم المعاملات كسلسلة من الأرقام مفصولة بفواصل منقوطة مثل . تُعامل الأرقام المفقودة على أنها  (على سبيل المثال،  يُعامل الرقم الأوسط على أنه ، وعدم وجود معاملات على الإطلاق في  يُعادل الكود  لإعادة الضبط). بعض التسلسلات (مثل CUU) تُعامل  على أنه  لجعل المعاملات المفقودة مفيدة.

تم اعتبار مجموعة فرعية من الترتيبات "خاصة" حتى يتمكن مصنعو الطرفيات من إدراج تسلسلاتهم الخاصة دون التعارض مع المعيار. التسلسلات التي تحتوي على بايتات المعامل <=>? أو البايتات النهائية من 0x70 إلى 0x7E (أي p–z{|}~) تُعد خاصة.

سلوك الطرفية غير محدد إذا احتوى تسلسل CSI على أي حرف خارج النطاق 0x20–0x7E. تُعد هذه الأحرف غير قانونية وتشمل أحرف التحكم C0 (النطاق 0–0x1F)، وحرف DEL (0x7F)، أو بايتات ذات البت الأعلى مفعّل. الاستجابات المحتملة تشمل تجاهل البايت، أو معالجته فورًا، وأيضًا ما إذا كان ينبغي متابعة تسلسل CSI، أو إيقافه فورًا، أو تجاهل بقية التسلسل.

+ بعض تسلسلات تحكم أنسي (ليست قائمة شاملة) الرمز  الاختصار  الاسم  التأثير CSI  A  تحريك المؤشر للأعلى يُحرّك المؤشر بمقدار  (الافتراضي ) خلية في الاتجاه المحدد. إذا كان المؤشر على حافة الشاشة، لا يحدث أي تأثير. CSI  B  تحريك المؤشر للأسفل CSI  C  تحريك المؤشر للأمام CSI  D  تحريك المؤشر للخلف CSI  E  السطر التالي للمؤشر يُحرّك المؤشر إلى بداية السطر بمقدار  (الافتراضي ) سطرًا للأسفل. (غير تابع للمعهد الأمريكي للمعايير الوطنية) CSI  F  السطر السابق للمؤشر يُحرّك المؤشر إلى بداية السطر بمقدار  (الافتراضي ) سطرًا للأعلى. (غير تابع للمعهد الأمريكي للمعايير الوطنية) CSI  G   يُحرّك المؤشر إلى العمود  (الافتراضي ). (غير تابع للمعهد الأمريكي للمعايير الوطنية) CSI  ;  H  تحديد موقع المؤشر يُحرّك المؤشر إلى الصف ، العمود . القيم تبدأ من 1، والافتراض هو  (أعلى الزاوية اليسرى) إذا لم تُذكر. تسلسل مثل  يُعادل ، وكذلك  يعادل  و. CSI  J  مسح الشاشة يمسح جزءًا من الشاشة. إذا كانت القيمة  تساوي  (أو مفقودة)، يُمسح من المؤشر حتى نهاية الشاشة. إذا كانت ، يُمسح من المؤشر إلى بداية الشاشة. إذا كانت ، تُمسح الشاشة بالكامل (ويُعاد المؤشر إلى الأعلى اليسار على دوس). إذا كانت ، تُمسح الشاشة كاملة ويُحذف كل ما تم حفظه في ذاكرة التمرير (هذه الميزة أضيفت لـ xterm وتدعمها تطبيقات طرفية أخرى). CSI  K  مسح في السطر يمسح جزءًا من السطر. إذا كانت  تساوي  (أو مفقودة)، يُمسح من المؤشر حتى نهاية السطر. إذا كانت ، يُمسح من المؤشر حتى بداية السطر. إذا كانت ، يُمسح السطر بأكمله. لا يتغير موضع المؤشر. CSI  S  تمرير لأعلى يُمرر الصفحة بالكامل للأعلى بمقدار  (الافتراضي ) سطرًا. تُضاف أسطر جديدة في الأسفل. (غير تابع للمعهد الأمريكي للمعايير الوطنية) CSI  T  تمرير لأسفل يُمرر الصفحة بالكامل للأسفل بمقدار  (الافتراضي ) سطرًا. تُضاف أسطر جديدة في الأعلى. (غير تابع للمعهد الأمريكي للمعايير الوطنية) CSI  ;  f   نفس تأثير CUP، لكن يُعتبر مؤثر تنسيقي (مثل  أو ) بدلًا من كونه أمر تحرير (مثل CUD أو CNL)، مما قد يؤدي إلى اختلاف في التعامل في بعض أوضاع الطرفية. CSI  m  اختيار العرض الرسومي يُحدد الألوان ونمط النصوص التي تلي هذا الكود. CSI 5i  تفعيل منفذ AUX يُفعّل منفذ التسلسل المحلي عادةً لطابعة محلية. CSI 4i  تعطيل منفذ AUX يُعطّل منفذ التسلسل المحلي عادةً لطابعة محلية. CSI 6n  تقرير حالة الجهاز يُبلغ عن موقع المؤشر (CPR) عن طريق إرسال ، حيث  هو الصف و هو العمود.

+ بعض التسلسلات الخاصة الشائعة الرمز  الاختصار  الاسم  التأثير CSI s  حفظ موقع المؤشر الحالي يحفظ موقع/حالة المؤشر في نمط وحدة تحكم SCO. في نمط الشاشة المقسومة رأسيًا، يُستخدم لضبط (كـ CSI n ; n s) أو إعادة ضبط الهوامش اليمنى واليسرى. CSI u   يستعيد موقع/حالة المؤشر في نمط وحدة تحكم SCO. CSI ? 25 h   إظهار المؤشر، كما في VT220. CSI ? 25 l   إخفاء المؤشر. CSI ? 1004 h   تفعيل التبليغ عن التركيز. يُبلّغ عند دخول أو خروج المحاكي من التركيز باستخدام  و على التوالي. CSI ? 1004 l   تعطيل التبليغ عن التركيز. CSI ? 1049 h   تفعيل ذاكرة الشاشة البديلة، من xterm. CSI ? 1049 l   تعطيل ذاكرة الشاشة البديلة، من xterm. CSI ? 2004 h   تفعيل وضع اللصق المحاط. في هذا الوضع، يتم إحاطة النص الملصوق داخل الطرفية بـ  و؛ ولا ينبغي للبرامج التعامل مع النص المحاط بهذه التسلسلات كأوامر (فيم، على سبيل المثال، لا يعامله كأوامر). من xterm CSI ? 2004 l   تعطيل وضع اللصق المحاط.

  محددات اختيار العرض الرسومي 
تُستخدم سلسلة التحكم CSI  m، المعروفة باسم "اختيار العرض الرسومي" (SGR)، لتعيين سمات العرض. يمكن تعيين عدة سمات في نفس السلسلة، مفصولة بفواصل منقوطة. تظل كل سمة عرض مفعّلة حتى تحدث سلسلة SGR لاحقة تقوم بإعادة ضبطها. إذا لم تُعطَ رموز، تُعامل  كما لو كانت  (إعادة ضبط / الوضع الطبيعي).

 n  الاسم  الملاحظة   إعادة ضبط أو عادي  يتم إيقاف تشغيل جميع السمات   عريض أو زيادة في الشدة  كما هو الحال مع الخافت، فإن تغيير اللون هو اختراع خاص بالحواسيب الشخصية (SCO / سي جي إيه)   خافت، تقليل في الشدة، أو باهت  قد يُنفّذ كبنط خفيف مثل العريض.   مائل  غير مدعوم على نطاق واسع. أحيانًا يُعامل كعكس أو وميض.   تسطير  توجد امتدادات أسلوبية لـ كيتي وڤي تي إي ومينتي وآي تيرم 2 وكونسول.   وميض بطيء  يجعل الوميض أقل من 150 مرة في الدقيقة   وميض سريع  ANSI.SYS في MS-DOS، أكثر من 150 مرة في الدقيقة؛ غير مدعوم على نطاق واسع   عكس الفيديو أو معكوس  تبادل ألوان المقدمة والخلفية؛ محاكاة غير متسقة   إخفاء أو كتم  غير مدعوم على نطاق واسع   شخط، أو شطب  الأحرف مقروءة لكن عليها شطب وكأنها محذوفة. غير مدعومة في Terminal.app   الخط الأساسي (الافتراضي)    خط بديل  تحديد خط بديل    فرَكتوُر (قوطي)  نادرًا ما يُدعم   تسطير مزدوج؛ أو: ليس عريضًا  تسطير مزدوج حسب ECMA-48, لكنه بدلاً من ذلك يُلغي خاصية العريض في عدة طرفيات، منها نواة لينكس في وحدة تحكم لينكس قبل الإصدار 4.17.   شدة عادية  لا عريض ولا خافت؛ تغيرات الألوان إذا كانت الشدة تُنفذ بهذه الطريقة   لا مائل ولا فرَكتوُر    غير مُسطّر  لا تسطير فردي ولا مزدوج   لا وميض  إيقاف الوميض   تباعد نسبي  من ITU وT.416، غير معروف استخدامه في الطرفيات   غير معكوس    إظهار  غير مخفي   غير مشطوب    تعيين لون المقدمة الأساسي    تعيين لون المقدمة الموسع  المعاملات التالية هي  أو    لون المقدمة الافتراضي  حسب ما تُحدده الجهة المنفذة (وفقًا للمعيار)   تعيين لون الخلفية الأساسي    تعيين لون الخلفية الموسع  المعاملات التالية هي  أو    لون الخلفية الافتراضي  حسب ما تُحدده الجهة المنفذة (وفقًا للمعيار)   تعطيل التباعد النسبي  T.61 وT.416   مؤطَّر يُنفّذ كـ "محدد تنويع إيموجي" في mintty.   مُحاط بدائرة   فوقه خط  غير مدعوم في Terminal.app   غير مؤطّر ولا محاط بدائرة    لا خط فوقي    تعيين لون التسطير الموسع  غير قياسي؛ مدعوم في Kitty وVTE وmintty وiTerm2. المعاملات التالية هي  أو    لون التسطير الافتراضي  غير قياسي؛ مدعوم في Kitty وVTE وmintty وiTerm2.   تسطير أيديوغرامي أو خط جانبي أيمن نادراً ما يُدعم   تسطير أيديوغرامي مزدوج، أو خط مزدوج على الجانب الأيمن   خط علوي أيديوغرامي أو خط جانبي أيسر   خط علوي أيديوغرامي مزدوج، أو خط مزدوج على الجانب الأيسر   تمييز أيديوغرامي   لا سمات أيديوغرامية  إعادة ضبط تأثيرات –   مرتفع (فوقي) مدعوم فقط في mintty   منخفض (تحتي)   لا مرتفع ولا منخفض   تعيين لون مقدمة ساطع غير قياسي؛ نُفذ أصلاً في aixterm   تعيين لون خلفية ساطع

  الألوان 

 ألوان 3-بت و4-بت 

المواصفة الأصلية احتوت فقط على 8 ألوان، وتم تحديدها بالأسماء فقط. كانت المعلمات SGR من 30 إلى 37 تُستخدم لاختيار لون المقدمة، في حين أن القيم من 40 إلى 47 كانت تُستخدم لاختيار لون الخلفية. عدد كبير من الطرفيات قامت بتنفيذ خاصية "عريض" (رمز SGR هو 1) على أنها لون أكثر سطوعًا بدلاً من خط مختلف، مما أتاح 8 ألوان إضافية للمقدمة. غالبًا لم يكن بالإمكان استخدام هذه الألوان الأكثر سطوعًا للخلفية، رغم أن بعض الأحيان كان تفعيل "عكس الفيديو" (رمز SGR هو 7) يتيح ذلك. على سبيل المثال: للحصول على حروف سوداء على خلفية بيضاء استخدم ، وللحصول على اللون الأحمر استخدم ، وللحصول على اللون الأحمر الساطع استخدم . لإعادة ضبط الألوان إلى الإعدادات الافتراضية، استخدم  (غير مدعوم في بعض الطرفيات)، أو أعد ضبط جميع السمات باستخدام . لاحقًا، أضافت بعض الطرفيات القدرة على تحديد الألوان "الساطعة" مباشرة باستخدام القيم من 90 إلى 97 للمقدمة، و100 إلى 107 للخلفية.

يوضح الجدول أدناه بعض الأمثلة حول كيفية تحويل رموز الألوان ذات 4-بت إلى رموز ألوان ذات 24-بت وفقًا لمعيار VGA وبعض محاكيات الطرفية الحديثة.

FG (المقدمة)
BG (الخلفية)
الاسم
VGA
وحدة تحكم ويندوز إكس بي
باورشل
فيجوال ستوديو كود
وحدة تحكم ويندوز 10
Terminal.app (ماك)
بوتي
mIRC
xterm
أوبونتو
طرفية Eclipse
30
40
أسود
0، 0، 0
12، 12، 12
0، 0، 0
1، 1، 1
0، 0، 0
31
41
أحمر
170، 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، 170، 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
أصفر
170، 85، 0يُعرض كبرتقالي في شاشات CGA
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، 170
0، 55، 218
36، 114، 200
0، 55، 218
0، 0، 128
0، 0، 187
0، 0، 127
0، 0، 238
60، 94، 169
0، 0، 238
35
45
أرجواني
170، 0، 170
128، 0، 128
188، 63، 188
136، 23، 152
166، 0، 166
187، 0، 187
127، 0، 127
205، 0، 205
208، 99، 195
205، 0، 205
36
46
سماوي
0، 170، 170
0، 128، 128
17، 168، 205
58، 150، 221
0، 166، 166
0، 187، 187
0، 147، 147
0، 205، 205
68، 185، 177
0، 205، 205
37
47
أبيض
170، 170، 170
192، 192، 192
255، 255، 255
229، 229، 229
204، 204، 204
204، 204، 204
187، 187، 187
178، 178، 178
229، 229، 229
238، 238، 236
229، 229، 229

 8-بت 

مع شيوع جداول البحث في لون 8-بت على بطاقات الرسومات، أُضيفت تسلسلات الهروب لتمكين اختيار الألوان من مجموعة محددة مسبقًا تتكون من 256 لونًا:
 ESC[38;5;{{Angbr|n}}m لاختيار لون المقدمة، حيث n رقم من الجدول أدناه
 ESC[48;5;{{Angbr|n}}m لاختيار لون الخلفية
   0–7:    الألوان القياسية (كما في ESC[30–37m)
   8–15:   ألوان عالية السطوع (كما في ESC[90–97m)
  16–231: مكعب ألوان 6×6×6 (216 لونًا): 16 + 36 × r + 6 × g + b (حيث 0 ≤ r وg وb ≤ 5)
 232–255: تدرج رمادي من الداكن إلى الفاتح على 24 مستوى
تختلف الألوان المعروضة لهذه القيم بين تطبيقات الطرفيات والمحاكيات، إذ إن المواصفات المعترف بها مثل ECMA-48 ومواصفة T.416 الصادرة عن الاتحاد الدولي للاتصالات لا تُعرّف لوحة ألوان ثابتة لهذا الجدول المرجعي. ورغم أن استخدام الصيغة المذكورة أعلاه شائع في توليد لوحة الألوان، فإن الخوارزمية وخيارات الألوان لقيم مكعب الألوان من 16 إلى 231 تختلف حسب التطبيق. تُعرض أدناه لوحة الألوان والخوارزمية المستخدمة في XTerm كمثال.

تستخدم مواصفة الاتحاد الدولي للاتصالات T.416 بعنوان *تقنية المعلومات – بنية الوثيقة المفتوحة (ODA) وتنسيق التبادل: بُنى محتوى الأحرف*  الرمز ":" كفاصل بدلاً من ذلك.
 ESC[38:5:{{Angbr|n}}m لاختيار لون المقدمة، حيث n رقم من الجدول أدناه
 ESC[48:5:{{Angbr|n}}m لاختيار لون الخلفية

 256-color mode — المقدمة: ESC[38;5;#m   الخلفية: ESC[48;5;#m الألوان القياسية ألوان عالية الكثافة 0  1  2  3  4  5  6  7  8  9 101112131415216 لون161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231ألوان تدرج الرمادي232233234235236237238239240241242243244245246247248249250251252253254255

لِحساب قيمة RGB لرمزٍ ما في مكعب الألوان 6 × 6 × 6، يمكن استخدام الشيفرة التالية:
# print a list of the 256-color red/green/blue values used by xterm.
#
# reference:
# 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.pl

print("colors 0-16 correspond to the أنسي and aixterm naming")
for code in range(0, 16):
    if code > 8:
        level = 255
    elif code == 7:
        level = 229
    else:
        level = 205
    r = 127 if code == 8 else level if (code & 1) != 0 else 92 if code == 12 else 0
    g = 127 if code == 8 else level if (code & 2) != 0 else 92 if code == 12 else 0
    b = 127 if code == 8 else 238 if code == 4 else level if (code & 4) != 0 else 0
    print(f"{code:3d}: {r:02X} {g:02X} {b:02X}")

print("colors 16-231 are a 6x6x6 color cube")
for red in range(0, 6):
    for green in range(0, 6):
        for blue in range(0, 6):
            code = 16 + (red * 36) + (green * 6) + blue
            r = red   * 40 + 55 if red   != 0 else 0
            g = green * 40 + 55 if green != 0 else 0
            b = blue  * 40 + 55 if blue  != 0 else 0
            print(f"{code:3d}: {r:02X} {g:02X} {b:02X}")

print("colors 232-255 are a grayscale ramp, intentionally leaving out black and white")
code = 232
for gray in range(0, 24):
    level = gray * 10 + 8
    code = 232 + gray
    print(f"{code:3d}: {level:02X} {level:02X} {level:02X}")

هناك أيضًا ترميز مشابه لكن غير متوافق يتكون من 88 لونًا، يستخدم نفس تسلسل الهروب، وقد ظهر في  و. ويعتمد على مكعب ألوان بأبعاد 4×4×4.

 24-بت 

مع انتشار بطاقات الرسومات التي تدعم "الألوان الحقيقية" بـ16 إلى 24 بت، بدأت التطبيقات تدعم ألوان 24-بت. من بين محاكيات الطرفية التي تدعم تعيين ألوان الواجهة والخلفية بدقة 24-بت باستخدام تسلسلات الهروب: Xterm، وكونسول الخاص ببيئة كدي، وiTerm، وكذلك جميع الطرفيات المبنية على مكتبة libvte، بما في ذلك طرفية جنوم.

ESC[38;2;⟨r⟩;⟨g⟩;⟨b⟩m Select RGB foreground color
ESC[48;2;⟨r⟩;⟨g⟩;⟨b⟩m Select RGB background color

يُعتقد أن هذه الصيغة مستندة إلى معيار الاتحاد الدولي للاتصالات T.416 حول هندسة المستندات المفتوحة (ODA) وتنسيق التبادل: معمارية محتوى الأحرف، والذي تم اعتماده لاحقًا تحت اسم ISO/IEC 8613-6، لكنه فشل تجاريًا. وتكون نسخة ODA أكثر تعقيدًا وبالتالي غير متوافقة:

 المعلمات بعد الرقم '2' (r وg وb) اختيارية ويمكن تركها فارغة.
 يتم استبدال الفواصل المنقوطة بنقطتين، كما هو موضح أعلاه.
 يوجد "معرّف مساحة اللون" في البداية. تعريف هذا المعرّف غير مضمَّن في ذلك المعيار، لذا يمكن تركه فارغًا لتمثيل القيمة الافتراضية غير المحددة. بالنسبة لمواصفات اللون بنظام CMYK، يفسّر برنامج mintty هذا المعامل على أنه يحدد القيمة القصوى التي تُقاس منها قنوات الألوان (مثل 100 أو 255).
 بالإضافة إلى القيمة '2' بعد 48 التي تحدد تنسيق الأحمر-الأخضر-الأزرق (RGB) (و'5' أعلاه لترميز اللون المؤشر 0–255)، توجد بدائل أخرى: '0' لتمثيل "مُعرّف حسب التطبيق"، و'1' للشفافية – وكلاهما لا يحتوي على معلمات إضافية؛ و'3' لتحديد الألوان باستخدام نظام السماوي-الأرجواني-الأصفر (CMY)، و'4' لنظام السماوي-الأرجواني-الأصفر-الأسود (CMYK)، حيث يُستخدم الموضع المسمى "غير مستخدم" لتمثيل مكوّن اللون الأسود.

ESC[38:2:⟨Color-Space-ID⟩:⟨r⟩:⟨g⟩:⟨b⟩:⟨unused⟩:⟨CS tolerance⟩:⟨Color-Space⟩m Select RGB foreground color
ESC[48:2:⟨Color-Space-ID⟩:⟨r⟩:⟨g⟩:⟨b⟩:⟨unused⟩:⟨CS tolerance⟩:⟨Color-Space⟩m Select RGB background color

حيث تشير  إلى نوع مساحة اللون المرتبطة بالتحمّل المُعطى:  لـCIELUV أو  لـCIELAB.

يتم دعم إصدار ITU-RGB من قِبل xterm، حيث يتم تجاهل معرّف مساحة اللون ومعامل التحمّل. أما الصيغة الأبسط باستخدام الفواصل المنقوطة، فقد ظهرت لأول مرة في Konsole.

 متغيرات البيئة في يونكس المتعلقة بدعم الألوان 

بدلاً من استخدام دعم الألوان في termcap وterminfo الذي تم تقديمه في إصدار SVr3.2 (عام 1987)، استخدمت مكتبة S-Lang (الإصدار 0.99-32، يونيو 1996) متغير بيئة منفصلًا هو  للإشارة إلى ما إذا كان محاكي الطرفية يمكنه استخدام الألوان على الإطلاق، وأضافت لاحقًا قيماً تشير إلى ما إذا كان يدعم الألوان ذات 24-بت. هذا النظام، رغم توثيقه الضعيف، أصبح شائعًا بدرجة كافية دفعت توزيعات مثل Fedora وRHEL إلى التفكير في استخدامه كآلية أبسط وأكثر شمولًا للكشف مقارنة باستعلام المكتبات المحدّثة.

تقوم بعض محاكيات الطرفية (مثل urxvt وkonsole) بتعيين المتغير  للإبلاغ عن نظام ألوان الطرفية (وخاصة الخلفية الفاتحة مقابل الداكنة). نشأ هذا السلوك في مكتبة S-Lang ويُستخدم في برنامج vim. أما gnome-terminal، فيرفض إضافة هذا السلوك، لأن صيغة القيمة غير متفق عليها، ولا يمكن تغيير القيمة عند تغيير لوحة الألوان أثناء التشغيل، كما أن تسلسلات xterm OSC 4/10/11 "الأكثر ملاءمة" موجودة بالفعل.

 تسلسلات أوامر نظام التشغيل 

تم تعريف معظم تسلسلات أوامر نظام التشغيل (OSC) بواسطة الطرفية Xterm، لكن العديد منها مدعوم أيضًا من قِبل محاكيات طرفية أخرى. ولأسباب تاريخية، يمكن للطرفية Xterm أن تُنهي الأمر إما برمز  (0x07) أو بالتسلسل القياسي  (0x9C أو 0x1B 0x5C). على سبيل المثال، تتيح Xterm تعيين عنوان النافذة باستخدام الأمر .

من الإضافات غير التابعة لـ Xterm ميزة الارتباط التشعبي، والتي تُستخدم بتسلسل  منذ عام 2017، وتُستخدم من قِبل مكتبة VTE، وiTerm2، وmintty، من بين محاكيات أخرى.

تستخدم وحدة التحكم في لينكس التسلسل  لتغيير لوحة الألوان، والذي، في حال تم تضمينه بشكل صلب في تطبيق ما، قد يؤدي إلى تعليق (تجميد) محاكيات طرفية أخرى. ومع ذلك، فإن إلحاق التسلسل  به سيتم تجاهله من قِبل لينكس، ويكوّن تسلسلًا سليمًا يمكن تجاهله من قِبل الطرفيات الأخرى.

 تسلسلات الهروب من نوع Fs 

إذا تبع  بايت ضمن النطاق ، فإن تسلسل الهروب يكون من نوع . يُستخدم هذا النوع للوظائف التحكمية المسجلة بشكل فردي في سجل ISO-IR. يتم عرض جدول لهذه الوظائف تحت قسم ISO/IEC 2022.

 تسلسلات الهروب من نوع Fp 

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

+ بعض تسلسلات الهروب من نوع  (للاستخدام الخاص) المعترف بها من قبل VT100 الاختصارالاسمالتأثير   حفظ المؤشر DEC يقوم بحفظ موضع المؤشر، وحالة التبديل في التشفير، وسمات التنسيق.    يقوم باستعادة موضع المؤشر، وحالة التبديل في التشفير، وسمات التنسيق من تسلسل DECSC السابق إن وجد، وإلا يعيد تعيينها إلى الإعدادات الافتراضية.

 تسلسلات الهروب من نوع nF 

إذا تبع  بايت ضمن النطاق ، فإن تسلسل الهروب يكون من نوع . يتبع هذا البايت أي عدد من البايتات الإضافية في هذا النطاق، ثم بايت ضمن النطاق . تُصنف هذه التسلسلات بشكل فرعي حسب أقل بتين في البايت الأول، على سبيل المثال "النوع " للتسلسلات التي يبدأ فيها البايت الأول بـ ؛ وحسب ما إذا كان البايت النهائي ضمن النطاق ، مما يشير إلى الاستخدام الخاص (على سبيل المثال "النوع ") أو لا (على سبيل المثال "النوع ").

تُستخدم معظم تسلسلات  لتغيير مجموعة الأحرف الحالية، وهي مدرجة في ISO/IEC 2022. وبعض التسلسلات الأخرى:

+ بعض تسلسلات الهروب من نوع  (الإعلان) المعترف بها من أنسي الاختصارالاسمالتأثير    يجعل مفاتيح الوظائف ترسل ESC + حرف بدلاً من أكواد C1 ذات 8 بتات.    يجعل مفاتيح الوظائف ترسل أكواد C1 ذات 8 بتات.

إذا كان البايت الأول هو '#'، فإن التسلسلات العامة محجوزة لوظائف التحكم الفردية المسجلة في ISO-IR. لا توجد تسلسلات مسجلة حالياً. تتوفر تسلسلات من النوع  (التي تشمل تلك التي تبدأ بـ '#') لوظائف التحكم للاستخدام الخاص.

+ بعض تسلسلات الهروب من نوع  (الاستخدام الخاص) المعترف بها من VT100 الاختصارالاسمالتأثير   حروف DEC مزدوجة الارتفاع، النصف العلوي يجعل السطر الحالي يستخدم حروفاً بارتفاع مزدوج. هذا الكود مخصص للنصف العلوي.    يجعل السطر الحالي يستخدم حروفاً بارتفاع مزدوج. هذا الكود مخصص للنصف السفلي.   سطر DEC ذو عرض فردي يجعل السطر الحالي يستخدم حروفاً بعرض فردي، وفقاً للسلوك الافتراضي.    يجعل السطر الحالي يستخدم حروفاً ذات عرض مزدوج، متجاهلاً أي حروف في النصف الثاني من السطر.

 أمثلة 

 — هذا يقوم بمسح الشاشة، وعلى بعض الأجهزة، يقوم بتحديد موقع المؤشر في الموضع y,x 1,1 (الزاوية العلوية اليسرى).

 — هذا يجعل النص باللون الأخضر. قد يكون اللون الأخضر داكنًا أو باهتًا، لذا قد ترغب في تفعيل النص العريض باستخدام تسلسل  مما يجعله أخضر لامعًا، أو دمجها معًا مثل . بعض التطبيقات تستخدم الحالة العريضة لجعل الحرف لامعًا.

 — هذا يعيد تعيين المفتاح F10 لإرسال السلسلة "DIR" وENTER إلى المخزن المؤقت للوحة المفاتيح، مما يعرض محتويات الدليل الحالي في سطر أوامر DOS. (خاص بـ MS-DOS ANSI.SYS فقط) كان يُستخدم أحيانًا للـ المعهد الأمريكي للمعايير الوطنية. هذا هو رمز استخدام خاص (كما يشار إليه بالحرف p)، باستخدام تمديد غير قياسي لإضافة معلمة من نوع سلسلة. وفقًا للحرف الموجود في المعيار، ينتهي التسلسل عند الحرف D.

 — هذا يحفظ موضع المؤشر. باستخدام التسلسل  سيتم استعادته إلى نفس الموضع. على سبيل المثال، إذا كان الموضع الحالي للمؤشر هو 7(y) و 10(x)، فإن التسلسل  سيحفظ هذين الرقمين. الآن يمكنك الانتقال إلى موضع مؤشر آخر، مثل 20(y) و 3(x)، باستخدام التسلسل  أو . الآن إذا استخدمت التسلسل ، سيعود موضع المؤشر إلى 7(y) و 10(x). بعض المحطات تتطلب تسلسلات DEC  /  بدلاً منها، والتي تُعتبر مدعومة بشكل أوسع.

 في البرمجة النصية 

يتم استخدام رموز الهروب أنسي بشكل شائع في يونكس والأنظمة المشابهة لوحدة التحكم UNIX لتوفير إبراز النحو. على سبيل المثال، على المحطات المتوافقة، يقوم أمر إل إس التالي بتلوين أسماء الملفات والدلائل حسب النوع.

 ls --color

يمكن للمستخدمين استخدام رموز الهروب في سكريبتاتهم من خلال تضمينها كجزء من تيارات البيانات الموحدة أو تيارات البيانات الموحدة. على سبيل المثال، يقوم أمر محرر التيار GNU التالي بتجميل مخرجات أمر صنع عن طريق عرض الأسطر التي تحتوي على كلمات تبدأ بـ "WARN" في الفيديو العكسي والكلمات التي تبدأ بـ "ERR" باللون الأصفر الساطع على خلفية حمراء داكنة (نسق الحرف مُتجاهل). تم تمييز تمثيلات الرموز.

 make 2>&1 | sed -e 's/.*\bWARN.*/\x1b[7m&\x1b[0m/i' -e 's/.*\bERR.*/\x1b[93;41m&\x1b[0m/i'

الوظيفة التالية في باش تقوم بوميض المحطة (عن طريق إرسال رموز وضع الفيديو العكسي والطبيعي بالتناوب) حتى يضغط المستخدم على مفتاح.

 flasher () { while true; do printf \\e[?5h; sleep 0.1; printf \\e[?5l; read -s -n1 -t1 && break; done; }

يمكن استخدام هذا لتنبيه المبرمج عندما تنتهي أمر طويل، مثل .

 printf \\033c

سيقوم هذا بإعادة ضبط وحدة التحكم، مماثلاً لأمر  في أنظمة Linux الحديثة؛ ومع ذلك، يجب أن يعمل حتى على أنظمة Linux القديمة وبعض نسخ UNIX الأخرى (غير Linux).

 في C 
البرنامج التالي ينشئ جدولًا للأرقام من 0 إلى 109، كل منها يتم عرضه بالتنسيق المحدد بواسطة تسلسل الهروب سي جي آر باستخدام ذلك الرقم كرمز لتنسيق الرسوم البيانية.
يسار|تصغير|مخرجات البرنامج المثال على طرفية جنوم
#include <stdio.h>

int main(void)
{
    int i, j, n;

    for (i = 0; i < 11; i++) {
        for (j = 0; j < 10; j++) {
            n = 10 * i + j;
            if (n > 108) break;
            printf("\033[%dm %3d\033[m", n, n);
        }
        printf("\n");
    }
    return 0;
}

 تسلسلات إدخال الطرفية 
الضغط على المفاتيح الخاصة على لوحة المفاتيح، بالإضافة إلى إخراج العديد من تسلسلات xterm CSI و DCS أو OSC، غالبًا ما ينتج تسلسل CSI أو DCS أو OSC، يُرسل من الطرفية إلى الكمبيوتر كما لو أن المستخدم قد كتبه.

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

هناك عدة مخططات ترميز، وللأسف تقوم معظم الطرفيات بخلط التسلسلات من مخططات مختلفة، لذا يجب أن يكون البرنامج المضيف قادرًا على التعامل مع تسلسلات الإدخال باستخدام أي مخطط.
لتعقيد الأمر، تحتوي طرفيات VT نفسها على مخططان للإدخال، وضع عادي ووضع التطبيق، يمكن التبديل بينهما بواسطة التطبيق.
<char>                                         -> char

<esc> <nochar>                                 -> esc

<esc> <esc>                                    -> esc

<esc> <char>                                   -> Alt-keypress or keycode sequence

<esc> '[' <nochar>                             -> Alt-[
<esc> '[' (<modifier>) <char>                  -> keycode sequence, <modifier> is a decimal                                             number and defaults to 1 (xterm)

<esc> '[' (<keycode>) (';'<modifier>) '~'      -> keycode sequence, <keycode> and <modifier>
                                                  are decimal numbers and default to 1 (vt)

إذا كان الحرف النهائي هو '~'، يجب أن يكون الرقم الأول موجودًا وهو رقم رمز المفتاح، بينما الرقم الثاني هو قيمة معدّل اختيارية. أما إذا كان الحرف النهائي هو حرف، فيكون الحرف هو قيمة رمز المفتاح، والرقم الاختياري هو قيمة المعدّل.

قيمة المعدّل تكون افتراضيًا 1، وبعد خصم 1 تصبح بت خريطة المفاتيح المعدّلة التي تم الضغط عليها: . على سبيل المثال، <esc>[4;2~ هو ، <esc>[20~ هو مفتاح الوظيفة ، <esc>[5C هو .

بعبارة أخرى، المعدّل هو مجموع الأرقام التالية:

 المفتاح المضغوط الرقم التعليق 1 يُضاف دائمًا، والبقية اختيارية Shift 1  (يسار) Alt 2  Control 4  Meta 8 

vt sequences:
<esc>[1~    - Home        <esc>[16~   -             <esc>[31~   - F17
<esc>[2~    - Insert      <esc>[17~   - F6          <esc>[32~   - F18
<esc>[3~    - Delete      <esc>[18~   - F7          <esc>[33~   - F19
<esc>[4~    - End         <esc>[19~   - F8          <esc>[34~   - F20
<esc>[5~    - PgUp        <esc>[20~   - F9          <esc>[35~   - 
<esc>[6~    - PgDn        <esc>[21~   - F10         
<esc>[7~    - Home        <esc>[22~   -             
<esc>[8~    - End         <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 sequences:
<esc>[A     - Up          <esc>[K     -             <esc>[U     -
<esc>[B     - Down        <esc>[L     -             <esc>[V     -
<esc>[C     - Right       <esc>[M     -             <esc>[W     -
<esc>[D     - Left        <esc>[N     -             <esc>[X     -
<esc>[E     -             <esc>[O     -             <esc>[Y     -
<esc>[F     - End         <esc>[1P    - F1          <esc>[Z     -
<esc>[G     - Keypad 5    <esc>[1Q    - F2       
<esc>[H     - Home        <esc>[1R    - F3       
<esc>[I     -             <esc>[1S    - F4       
<esc>[J     -             <esc>[T     - 

<esc>[A إلى <esc>[D هي نفسها تسلسلات الإخراج أنسي. يتم عادةً حذف <modifier> إذا لم يتم الضغط على مفاتيح معدلة، ولكن معظم التطبيقات تقوم دائمًا بإصدار <modifier> عند الضغط على . (قسم مسودة)

تحتوي Xterm على صفحة توثيق شاملة حول مخططات تسلسل إدخال المفاتيح الوظيفية والفأرة المختلفة من محطات VT الخاصة بشركة DEC وتمت إضافة الكثير من الدعم لها عبر الزمن بواسطة توماس ديكي؛ كما أنه يحافظ على قائمة بالمفاتيح الافتراضية المستخدمة من قبل محاكيات الطرفيات الأخرى للمقارنة.

 على وحدة تحكم لينوكس، بعض مفاتيح الوظائف تولد تسلسل من الشكل CSI [ char. يجب أن ينتهي تسلسل CSI على [.
 إصدارات قديمة من "Terminator" تولد SS3 1; modifiers char عندما يتم الضغط على  مع المفاتيح المعدلة. تم نسخ هذا السلوك من طرفية جنوم.
 xterm يرد بـ CSI row ; column R إذا طُلب موقع المؤشر وCSI 1 ; modifiers R إذا تم الضغط على مفتاح  مع المفاتيح المعدلة، مما يؤدي إلى تصادم في حالة row == 1. يمكن تجنب ذلك باستخدام المعدل الخاص ? كـ CSI ? 6 n، والذي سينعكس في الاستجابة كـ CSI ? row ; column R.
 العديد من المحاكيات تضيف ESC إلى أي حرف يتم كتابته مع الضغط على مفتاح Alt. هذا يخلق غموضًا في الحروف الكبيرة والرموز @[\]^_، التي ستشكل أكواد C1.
 كونسول يولد SS3 modifiers char عندما يتم الضغط على  مع المفاتيح المعدلة.
 iTerm2 يدعم الإبلاغ عن مفاتيح إضافية عبر وضع CSI u المحسن.

 انظر أيضًا 
 المعهد الأمريكي للمعايير الوطنية
 محرف تحكم

 الملاحظات 

 المراجع 

 الروابط الخارجية 
 المعيار ECMA-48، الوظائف التحكمية لمجموعات الحروف المشفرة. (الطبعة الخامسة، يونيو 1991)، جمعية مصنعي الحواسيب الأوروبية، جنيف 1991 (تم نشره أيضًا من قبل ISO وIEC كمعيار ISO/IEC 6429)
 vt100.net مستندات DEC

 Xterm / تسلسل الهروب
 AIXterm / تسلسل الهروب
 مجموعة من تسلسل الهروب للطرفيات المتوافقة بشكل غير دقيق مع ECMA-48 وأقرانه.

 توصية ITU-T Rec. T.416 (03/93) تكنولوجيا المعلومات – بنية الوثيقة المفتوحة (ODA) وتنسيق التبادل: بنى محتوى الحروف

تصنيف:معايير الحاسوب
تصنيف:معايير الأيزو
تصنيف:واجهة مستخدم نصية