العملية الأولى التي تحدث بعد العملية العادية لإخراج المعلومات وإرسال دفق من أحرف وحدة التحكم إلى برنامج التشغيل (للإخراج الفعلي) هي ترجمة الرموز المستخدمة أثناء التشغيل العادي إلى رموز تستخدم للطباعة.
إذا كانت وحدة التحكم تعمل في وضع UTF-8، فسيتم تنظيم البايتات الواردة أولاً في Unicode 16 بت. وبخلاف ذلك، يتم تحويل كل بايت وفقًا لجدول البحث الحالي (الذي يحول البيانات إلى Unicode). انظر القسم مجموعات الأحرفأقل).
عادةً، يتم تحويل قيم Unicode إلى فهرس الخطوط، الذي يتم تخزينه في ذاكرة الفيديو بحيث تظهر الصورة المقابلة (الموجودة في ذاكرة القراءة فقط للفيديو) على الشاشة. لاحظ أن العمل مع Unicode (وأجهزة الكمبيوتر الحالية) يسمح فقط باستخدام 512 صورة مختلفة في وقت واحد.
إذا كانت قيمة Unicode الحالية عبارة عن حرف تحكم، أو إذا كان تسلسل الهروب قيد المعالجة حاليًا، فسيتم التعامل مع القيمة بشكل مختلف. بدلاً من تحويل القيمة إلى خط وعرضها كصورة، سيؤدي ذلك إلى تنفيذ إجراء محدد (مثل تحريك المؤشر) أو وظيفة تحكم أخرى. انظر القسم أدناه إدارة وحدة تحكم Linux.
من غير الصحيح تحديد تسلسل أجهزة التحكم الطرفية بشكل صريح في البرامج. يدعم Linux قاعدة الوظائف الطرفية com.terminfo(5). بدلاً من إدخال تسلسلات الهروب يدويًا، قد ترغب في استخدام مكتبة تستخدم معلومات المصطلحات أو أدوات مساعدة أخرى للقيام بهذه المهمة، مثل ncurses(3), tput(1) أو إعادة ضبط(1).
أحرف التحكم
يعتبر الحرف حرف تحكم إذا كان (قبل التحويل وفقًا لجدول التحويل) يحتوي على واحد من 14 رمزًا: 00 (NUL)، 07 (BEL)، 08 (BS)، 09 (HT)، 0a (LF)، 0b (VT)، 0c (FF)، 0d (CR)، 0e (SO)، 0f (SI)، 18 (CAN)، 1a (SUB)، 1b (ESC)، 7f (DEL). يمكنك ضبط وضع "إظهار أحرف التحكم" (انظر أدناه)، وفي هذه الحالة سيتم عرض الأحرف 07، 09، 0b، 18، 1a، 7f على الشاشة كصور. من ناحية أخرى، في وضع UTF-8، يتم التعامل مع جميع الرموز من 00 إلى 1f كأحرف تحكم، بغض النظر عن وضع "إظهار أحرف التحكم".
في حالة مواجهة حرف تحكم، يتم أخذه في الاعتبار على الفور وليس له أي تأثير آخر (حتى لو كان في منتصف تسلسل الهروب)، ويستمر تسلسل التحكم من الحرف التالي. ومع ذلك، من المحتمل أن يؤدي حرف ESC الذي يبدأ تسلسل هروب جديد إلى إلغاء تسلسل سابق غير مكتمل، ومن المؤكد أن الأحرف CAN وSUB ستنهي أي تسلسل هروب. أحرف التحكم المعترف بها هي: BEL، BS، HT، LF، VT، FF، CR، SO، SI، CAN، SUB، ESC، DEL، CSI. يقومون بتنفيذ الإجراءات القياسية لهم:
بيل (0x07، ^ ج) يصدر صوتًا؛ بكالوريوس (0x08، ^ ح) يحذف الحرف السابق (ينتقل إلى اليسار بعمود واحد، ولكن ليس أبعد من بداية السطر)؛ HT(0x09, ^ أنا) ينتقل إلى علامة الجدولة التالية أو إلى نهاية السطر إذا لم يتم تعيين علامات جدولة من قبل؛ لف (0x0A، ^ ج)، فاتو (0x0B، ^ ك) وFF (0x0C، ^ ل) قم بتعيين تغذية سطر، ويقوم LF/NL (في وضع السطر الجديد) بإجراء إرجاع إلى السطر؛ كر (0x0D، ^ م) يحدد حرف الإرجاع؛ لذا (0x0E، ^ ن) يقوم بتنشيط مجموعة الأحرف G1؛ سي (0x0F، ^ يا) لتشغيل مجموعة الرموز G0؛ يمكن (0x18، ^X) وSUB (0x1A، ^ ض) يقطع تسلسل الفحص؛ إيسك (0x1B، ^[ ) بدء تسلسل الفحص؛ يتم تجاهل DEL (0x7F)؛ CSI (0x9B) يعادل ESC [.
ESC ولكن ليس تسلسلات CSI
إي إس سي ج | ريس | إعادة ضبط. |
إي إس سي د | إنديانا | ترجمة الخط. |
إي إس سي إي | نيل | خط جديد. |
إي إس سي ح | هيئة تحرير الشام | قم بتعيين علامة الجدولة في العمود الحالي. |
إي إس سي م | ر. | تغذية الخط العكسي. |
إي إس سي ز | قرر | تعريف محدد لـ DEC. تقوم النواة بإرجاع السلسلة ESC [ ؟ 6 ج بدعوى أنه VT102. |
إي إس سي 7 | ديسك | حفظ الحالة الحالية (إحداثيات المؤشر، والسمات، ومجموعات الأحرف المحددة بواسطة G0، G1). |
إي إس سي 8 | DECRC | استعادة آخر حالة محفوظة لـ ESC 7. |
خروج [ | منظمة التضامن المسيحي الدولية | بداية تسلسل التحكم |
خروج ٪ | ابدأ التسلسل باختيار مجموعة الأحرف |
|
خروج ٪ @ | التحديد الافتراضي (ISO 646/ISO 8859-1) |
|
إي إس سي % جي | حدد UTF-8 |
|
إي إس سي % 8 | حدد UTF-8 (قديم) |
|
إي إس سي رقم 8 | ديكالن | اختبار محاذاة شاشة DEC: يملأ الشاشة بأحرف E. |
خروج ( | ابدأ التسلسل مع تحديد مجموعة الأحرف G0 |
|
إي إس سي (ب | التحديد الافتراضي (تحويل ISO 8859-1) |
|
إي إس سي (0 | اختيار إعادة ترميز الرسم VT100 |
|
إي إس سي (يو | بدون إعادة ترميز --- مباشرة إلى ذاكرة القراءة فقط (ROM) الخاصة بالأحرف |
|
إي إس سي (ك | إعادة ترميز المستخدم --- البطاقة |
|
محملة بواسطة المرافق خرائط(8). |
||
خروج) | ابدأ التسلسل مع تحديد مجموعة الأحرف G1 |
|
(متبوعًا بأحد الرموز B، 0، U، K، كما هو الحال مع G0). |
||
إي إس سي> | ديكبنم | اضبط وضع إدخال الأرقام للوحة المفاتيح الإضافية |
إيسك = | ديكبام | ضبط وضع التحكم للوحة المفاتيح الإضافية |
خروج] | O.S.C. | (يجب أن يكون: أمر نظام التشغيل، OSC) ESC ] P com.nrrggbb: قم بتعيين اللوحة، تحدد المعلمة 7 أحرف سداسية عشرية بعد آخر P:-(.هنا نيضبط اللون (0-15)، وفي rggbbيشار إلى القيم الحمراء / الخضراء / الزرقاء (0-255). ESC ] R: إعادة تعيين لوحة الألوان |
تسلسلات ECMA-48 CSI
يتبع CSI (أو ESC[) سلسلة من المعلمات، وهي عبارة عن أرقام عشرية مفصولة بفواصل منقوطة (أكبرها NPAR(16)). المعلمة الفارغة أو المفقودة تساوي الصفر. يمكن أن يبدأ تسلسل المعلمات بعلامة استفهام واحدة.
ومع ذلك، بعد CSI [ (أو ESC [])، تتم قراءة حرف واحد ويتم تجاهل بقية التسلسل. (الهدف من ذلك هو عدم عرض مفتاح الوظيفة.)
يتم تحديد نتيجة تسلسل CSI من خلال طابع النهاية الخاص بها.
@ | التراث الثقافي غير المادي | أدخل حرف N فارغًا. |
أ | CUU | حرك المؤشر لأعلى خطوط N. |
ب | CUD | |
ج | CUF | |
د | الشبل | حرك المؤشر إلى أعمدة N اليسرى. |
ه | CNL | حرك المؤشر لأسفل خطوط N إلى العمود 1. |
F | CPL | حرك المؤشر لأعلى خطوط N إلى العمود 1. |
ز | تشا | |
ح | كوب | حرك المؤشر إلى الصف والعمود المحددين (ابدأ عند 1،1). |
ج | الضعف الجنسي | مسح الشاشة (افتراضيًا من المؤشر إلى نهاية الشاشة). |
ESC [ 1 J: مسح من البداية إلى المؤشر. |
||
ESC [ 2 J: مسح الشاشة بأكملها. |
||
ESC [ 3 J: مسح الشاشة بأكملها، بما في ذلك المخزن المؤقت |
||
التمرير الخلفي (منذ Linux 3.0). |
||
ك | إل | مسح الخط (الافتراضي من المؤشر إلى نهاية السطر). |
ESC [ 1 K: مسح من بداية السطر إلى المؤشر. |
||
ESC [ 2 K: امسح السطر بأكمله. |
||
ل | انا | أدخل N أسطر فارغة. |
م | د. | حذف صفوف N. |
ص | DCH | حذف أحرف N في السطر الحالي. |
X | صدى | مسح أحرف N في السطر الحالي. |
أ | HPR | حرك المؤشر إلى الأعمدة N اليمنى. |
ج | د.أ. | استجابة ESC [؟ 6 ج: "أنا محطة VT102." |
د | نائب الرئيس التنفيذي | انقل المؤشر إلى الصف المحدد في العمود الحالي. |
ه | VPR | حرك المؤشر لأسفل خطوط N. |
F | HVP | حرك المؤشر إلى الصف والعمود المحددين. |
ز | سيتم تحديده لاحقًا | لا توجد معلمة: امسح علامة التبويب الحالية. |
ESC [ 3 g: حذف كافة علامات الجدولة. |
||
ح | م. | وضع التثبيت (انظر أدناه). |
ل | ر.م. | وضع إعادة الضبط (انظر أدناه). |
م | SGR | تحديد السمات (انظر أدناه). |
ن | DSR | تقرير الحالة (انظر أدناه). |
س | ديكل | التحكم في المؤشرات على لوحة المفاتيح. |
ESC [ 0 q: قم بإيقاف تشغيل كافة المؤشرات |
||
ESC [ 1 q: تمكين قفل التمرير |
||
ESC [ 2 q: تمكين Num Lock |
||
ESC [ 3 q: تمكين Caps Lock |
||
ص | DECSTBM | تعيين منطقة التمرير. ستكون المعلمات هي الخطوط العلوية والسفلية. |
س | ? | حفظ موقع المؤشر. |
ش | ? | استعادة موقع المؤشر. |
` | HPA | انقل المؤشر إلى العمود المحدد في الصف الحالي. |
ضبط خيارات الرسومات ECMA-48
تسلسل ECMA-48 SGR لأحرف التحكم ESC [ حدودم يضبط سمات الشاشة. يمكن تحديد عدة سمات في تسلسل واحد. تتم معاملة المعلمة الفارغة (بين فاصلة منقوطة أو سطر بادئ أو حرف إنهاء) على أنها صفر.
معامل | نتيجة |
0 | إعادة تعيين كافة السمات إلى قيمها الافتراضية |
1 | تعيين جريئة |
2 | تم ضبطه على أكثر سطوعًا (تمت محاكاته حسب اللون على شاشة العرض الملونة) |
4 | ضبط التسطير (يتم محاكاته حسب اللون على شاشة العرض الملونة) (يتم ضبط الألوان المستخدمة لمحاكاة التغميق أو التسطير باستخدام ESC ] ...) |
5 | تشغيل وميض |
7 | تمكين عكس الفيديو |
10 | إعادة تعيين الترميز المحدد وعلامة التحكم في الشاشة وتبديل علامة التعريف (في ECMA-48 المحدد كـ "الخط الأساسي"). |
11 | حدد إعادة الترميز الفارغ، واضبط علامة التحكم في الشاشة، وأعد ضبط مفتاح علامة التعريف (في ECMA-48 تم تحديده على أنه "الخط البديل الأول"). |
12 | حدد إعادة الترميز الفارغ، واضبط علامة التحكم في الشاشة، واضبط مفتاح علامة التعريف (في ECMA-48 يتم تحديده على أنه "الخط البديل الثاني"). يؤدي تبديل علامة التعريف إلى تبديل البت الأكثر أهمية في البايت قبل إعادة ترميزه وفقًا لجدول الترجمة. |
21 | تمكين الكثافة العادية (في ECMA-48 المحدد بـ "شرطة سفلية مزدوجة") |
22 | بدوره على كثافة طبيعية |
24 | قم بإيقاف التسطير |
25 | إيقاف الخفقان |
27 | قم بإيقاف تشغيل الفيديو المقلوب |
30 | اضبط لون الحرف على اللون الأسود |
31 | اضبط لون الرمز على اللون الأحمر |
32 | اضبط لون الرمز على اللون الأخضر |
33 | اضبط لون الحرف على اللون البني |
34 | اضبط لون الرمز على اللون الأزرق |
35 | اضبط لون الرمز على أرجواني |
36 | اضبط لون الرمز على اللون الأزرق |
37 | اضبط لون الحرف على اللون الأبيض |
38 | تمكين التسطير، تعيين لون الحرف الافتراضي |
39 | قم بإيقاف تشغيل التسطير، وقم بتعيين لون الحرف الافتراضي |
40 | ضبط لون الخلفية على اللون الأسود |
41 | تعيين لون الخلفية باللون الأحمر |
42 | ضبط لون الخلفية على اللون الأخضر |
43 | ضبط لون الخلفية على اللون البني |
44 | ضبط لون الخلفية على اللون الأزرق |
45 | ضبط لون الخلفية على أرجواني |
46 | ضبط لون الخلفية على اللون الأزرق |
47 | ضبط لون الخلفية على اللون الأبيض |
49 | تعيين لون الخلفية الافتراضي |
مفاتيح الوضع ECMA-48
ESC [ 3 ساعات DECCRM (إيقاف افتراضي): إظهار أحرف التحكم. ESC [ 4 ساعات DECIM (إيقاف افتراضي): تمكين وضع الإدراج. ESC [20 ساعة LF/NL (إيقاف افتراضي): إخراج رمز CR تلقائيًا بعد LF أو VT أو FF.
أوامر إخراج الحالة ECMA-48
ESC [ 5 n رسالة حالة الجهاز (DSR): الاستجابة هي ESC [ 0 n (المحطة OK). ESC [ 6 n رسالة موضع المؤشر (CPR): الاستجابة هي ESC [ ذ ; سر، حيث س، صهي إحداثيات المؤشر.
تسلسلات الوضع الخاص DEC (DECSET/DECRST)
خروج [ ؟ ساعة واحدة من DECCKM (إيقاف التشغيل الافتراضي): عند تمكينه، ترسل مفاتيح المؤشر البادئة ESC O بدلاً من ESC [. خروج [ ؟ 3 ساعات DECCOLM (الافتراضي = 80 عمودًا): وضع تبديل رقم العمود 80/132. ينص الكود المصدري لبرنامج التشغيل على أن هذا الأمر وحده لا يكفي؛ بعض أدوات المستخدم المساعدة التي تستخدم أوضاعًا غير قياسية، مثل resizecons(8)، يجب تغيير سجلات التكوين الخاصة ببطاقة فيديو وحدة التحكم. خروج [ ؟ 5 ساعات DECCNM (إيقاف التشغيل الافتراضي): تمكين وضع الفيديو المقلوب. خروج [ ؟ 6 ساعات DECOM (إيقاف افتراضي): في حالة تمكينه، يتم اعتبار إحداثيات المؤشر نسبة إلى الزاوية اليسرى العليا من منطقة التمرير. خروج [ ؟ 7 ساعات DECAWM (ممكّن افتراضيًا): تمكين وضع النقل التلقائي. في هذا الوضع، يتم نقل الحرف الرسومي الذي تم إدخاله بعد العمود 80 (أو العمود 132، إذا تم تمكين DECCOLM) إلى بداية السطر التالي. خروج [ ؟ 8 ساعات DECARM (ممكّن افتراضيًا): تمكين التكرار التلقائي للأحرف عند الدخول من لوحة المفاتيح. خروج [ ؟ 9 ساعات X10 تقرير حالة الماوس (إيقاف افتراضي): اضبط وضع تقرير حالة الماوس على 1 (أو إعادة التعيين إلى 0)، انظر أدناه. خروج [ ؟ 25 ساعة DECTECM (ممكّن افتراضيًا): جعل المؤشر مرئيًا. خروج [ ؟ 1000 ساعة X11 تقرير حالة الماوس (إيقاف افتراضي): اضبط وضع تقرير حالة الماوس على 2 (أو إعادة التعيين إلى 0)، انظر أدناه.
تسلسلات CSI الخاصة بوحدة تحكم Linux
التسلسلات التالية ليست ECMA-48 ولا VT102. وهي متوفرة فقط في برنامج تشغيل وحدة تحكم Linux. الألوان في معلمات SGR: 0 = أسود، 1 = أحمر، 2 = أخضر، 3 = بني، 4 = أزرق، 5 = أرجواني، 6 = أزرق فاتح، 7 = أبيض.
إيسك [1؛ ن ] | ضبط اللون نكما تسطير اللون |
إيسك [2؛ ن ] | ضبط اللون نكما يتلاشى اللون |
إي إس سي[8] | قم بتعيين زوج الألوان الحالي كسمات افتراضية. |
إيسك [9؛ ن ] | أطفئ الشاشة بعد ذلك ندقائق. |
إي إس سي [ 10 ; ن ] | ضبط تردد الإشارة الصوتية (بالهرتز). |
إيسك [11؛ ن ] | اضبط مدة الإشارة الصوتية (بالملي ثانية). |
إيسك [12؛ ن ] | حرك وحدة التحكم المحددة أمام الآخرين. |
إي إس سي [13] | قم بتشغيل الشاشة. |
إيسك [14؛ ن ] | اضبط الفاصل الزمني لإيقاف تشغيل الطاقة وفقًا لمعايير VESA (بالدقائق). |
إي إس سي [15] | انقل وحدة التحكم السابقة قبل وحدات التحكم الأخرى (منذ Linux 2.6.0). |
إيسك [16؛ ن ] | اضبط الفاصل الزمني وميض المؤشر بالمللي ثانية (منذ Linux 4.2) |
توجد مجموعتان من الأحرف في النظام، تسمى G0 وG1، إحداهما هي مجموعة الأحرف الحالية للنظام (G0 في الأصل). يدخل ^ نيتسبب في أن تصبح المجموعة G1 حالية، ^ يايجعل مجموعة G0 الحالية.
تشير هذه المتغيرات G0 وG1 إلى جدول الترجمة ويمكن للمستخدم تغييرها. في البداية يشيرون إلى الجدولين أ) و ب) على التوالي. التسلسلات ESC(B، ESC(0، ESC(U وESC(K) تجعل G0 تشير إلى جداول الترجمة a) وb) وc) وd)، على التوالي. التسلسلات ESC) B وESC) 0 وESC) U وESC) K تجعل G1 تشير إلى جدول الترجمة a) وb) وc) وd)، على التوالي.
يقوم تسلسل ESC c بإعادة ضبط الجهاز، وهو ما تريد القيام به عندما تكون هناك رسائل غير مرغوب فيها على الشاشة. التوصية المقدمة بعد "echo ^V^O" ستجعل G0 هي المجموعة الحالية فقط، ولكن ليس هناك ضمان بأن G0 يشير إلى الجدول a). بعض التوزيعات لديها برنامج إعادة ضبط(1)، والذي ينفذ فقط الأمر "echo ^ . يتم البحث عن الصورة النقطية المطابقة لـ s في الرمز ROM ويمكن تغييرها باستخدام setfont(8).
المعلمة لجميع خلقها xterm(1) ستكون تسلسلات الهروب (إشارات الماوس) عبارة عن حرف واحد، رمزه يساوي معنى+040. على سبيل المثال، "!" يتوافق مع واحد. يبدأ تقرير نظام إحداثيات الشاشة عند 1.
في وضع التوافق X10، يؤدي الضغط على الزر إلى إرسال تسلسلات هروب تقوم بتشفير كل من موقع الماوس والمعلومات حول الزر الذي تم الضغط عليه. يتم تنشيط الوضع عند ESC [؟ 9 ساعات وينطفئ عند ESC [ ? 9 لتر. عندما تضغط على الزر xterm(1) يرسل ESC [ م com.bxy(6 أحرف)، حيث b هو الزر 1، وx وy هما إحداثيات x وy عند الضغط على الزر. هذه هي نفس الرموز التي تولدها النواة وتصدرها.
في وضع تتبع الماوس العادي (الذي لم يتم تنفيذه في Linux 2.0.24)، يتم إرسال تسلسلات الهروب عند الضغط على زر الماوس وتحريره. يتم أيضًا إرسال معلومات حول المُعدِّل. يتم تنشيط الوضع عند ESC [؟ 1000 ساعة وينطفئ عند إصدار ESC [ 1000 لتر. عند الضغط على زر أو تحريره xterm(1) قضايا ESC [ م com.bxy. قطعتان أقل أهمية بتحتوي على معلومات حول الأزرار: 0=MB1 مضغوط، 1=MB2 مضغوط، 2=MB3 مضغوط، 3=محرر. تحتوي البتات الأكثر أهمية على معلومات حول المعدلات التي تم الضغط عليها عند الضغط على الزر. تتم إضافة هذه المعلومات عند الضغط على: 4=Shift، 8=Meta، 16=Control. مرة أخرى: سو ذهي إحداثيات x وy للماوس عند معالجة الحدث. تعتبر إحداثيات الزاوية اليسرى العليا (1،1).
التعامل مع أحرف التحكم
يتعرف النوع VT102 أيضًا على أحرف التحكم التالية:
يتم تجاهل NUL (0x00)؛ يقوم ENQ (0x05) بتشغيل رسالة استجابة عكسية؛ DC1(0x11، ^ س، XON) يستأنف الإرسال؛ DC3 (0x13، ^ س، XOFF) يؤدي إلى تجاهل VT100 (وإيقاف الإرسال) لجميع الرموز باستثناء XOFF وXON.
يمكن تمكين معالجة DC1/DC3 المشابهة لـ VT100 في برنامج التشغيل الطرفي.
إيسك ] 0 ; رسالة قصيرةشارع | قم بتعيين اسم الرمز وعنوان النافذة على رسالة قصيرة. |
إي إس سي ] 1 ; رسالة قصيرةشارع | تعيين اسم الرمز على قدم المساواة رسالة قصيرة. |
إي إس سي ] 2 ; رسالة قصيرةشارع | اضبط عنوان النافذة على رسالة قصيرة. |
إي إس سي ] 4 ; رقم; رسالة قصيرةشارع | ضبط لون ANSI رقممتساوي رسالة قصيرة. |
إي إس سي ] 10 ; رسالة قصيرةشارع | اضبط لون النص الديناميكي على رسالة قصيرة. |
إي إس سي ] 4 6 ; اسمشارع | تغيير ملف السجل إلى اسم(عادة معطل |
في خيارات التجميع) |
|
إي إس سي ] 5 0 ; fnشارع | تثبيت الخط fn. |
يتم التعرف على المعلمات التالية بقيمة تم تغييرها قليلاً (يتم الحفاظ على الحالة بشكل أكبر، والسلوك أقرب إلى VT100/VT220):
إي إس سي 7 ديسك | حفظ المؤشر | |
إي إس سي 8 ديكرك | استعادة المؤشر |
معترف بها أيضا
كما أنه يتعرف على ESC % ويوفر تطبيق UTF-8 أكثر اكتمالاً من وحدة تحكم Linux.
تسلسلات منظمة التضامن المسيحي الدولية
الإصدارات القديمة xterm(1)، على سبيل المثال من X11R5، اعتبر وميض SGR بمثابة سمنة SGR. تعرض الإصدارات الأحدث التي تطبق ألوان ANSI، مثل XFree86 3.1.2A من عام 1995، سمة الوميض بالألوان. في الإصدارات الحديثة من xterm، يتم تنفيذ وميض SGR كنص وميض، والذي يمكن أيضًا جعله ملونًا كبديل لعرض SGR. لم تتعرف الإصدارات الأصلية من X11R6 على إعدادات ألوان SGR حتى الإصدار X11R6.8، والذي يتضمن XFree86 xterm. جميع تسلسلات ECMA-48 CSI CSI التي يفهمها Linux مفهومة أيضًا xterm، ومع ذلك، في xterm(1) هناك العديد من تسلسلات التحكم ECMA-48 وDEC التي تم تنفيذها والتي لا يفهمها Linux.
برنامج xterm(1) يتعرف على جميع تسلسلات الوضع الخاص لـ DEC الموضحة أعلاه، ولكن لا يتعرف على أي من تسلسلات الوضع الخاص لنظام التشغيل Linux. حول أوضاعك الخاصة xterm(١) يمكن قراءته في الوثيقة تسلسلات الهروب Xterm، كتبها إدوارد موي، وستيفن جيلديا، وتوماس إي. ديكي، وهي متاحة في توزيع X. هذه الوثيقة، على الرغم من اختصارها، لا تزال أكبر بكثير من صفحة الدليل هذه. نظرة عامة تاريخية في
يصف التغييرات على xterm.
برنامج com.vttest
يوضح العديد من تسلسلات التحكم هذه. في التوزيعة الأصلية xterm(1) يحتوي أيضًا على أمثلة للنصوص البرمجية التي تعلمك كيفية العمل مع الخصائص الأخرى.
تقوم بعض الإصدارات الأقدم من النواة (بعد 2.0) بتحليل تسلسلات الهروب ذات 8 بت. تستخدم ("رموز التحكم C1") هذه الرموز من 128 إلى 159 لتحل محل ESC [, ESC ] وتسلسلات التحكم الأولية المماثلة ثنائية البايت. وهي موجودة جزئيًا في النوى الحديثة (أو لم يتم التعرف عليها أو تعمل بسبب دعم UTF-8)، ولم يتم تنفيذها بالكامل، ويجب اعتبارها غير موثوقة.
لا تحترم تسلسلات "الوضع الخاص" لنظام التشغيل Linux قواعد ECMA-48 لتسلسلات الهروب من الوضع الخاص. على وجه الخصوص، تنتهي بـ ] ولا تستخدم أداة الإنهاء القياسية. يعد تسلسل OSC (لوحة الألوان المحددة) مشكلة كبيرة لأنه xterm(1) يعامله على أنه تسلسل هروب يتطلب نهاية السطر (ST). على عكس التسلسلات setterm(1) والتي سيتم تجاهلها (نظرًا لأنها ليست تسلسلات تحكم صالحة)، فسيتسبب تسلسل اللوحة في حدوث تعليق xterm(1) (على الرغم من أن الضغط على مفتاح العودة سيصلح ذلك). لاستيعاب التطبيقات التي تحتوي على تسلسلات هروب Linux ذات ترميز ثابت، قم بتثبيت المورد xterm(1) com.brokenLinuxOSCيساوي صحيحا.
يفترض الإصدار القديم من هذا المستند أن Linux سيتعرف على تسلسل الهروب ECMA-48 لإخفاء النص. تم تجاهلها.
تسلسلات ESC عبارة عن مجموعات أحرف خاصة
تمثل المسافات البيضاء والأحرف غير الرسومية في السلاسل والأحرف
الثوابت.
يتضمن استخدامها النموذجي تحديد إجراءات مثل
أحرف الإرجاع وعلامات التبويب، ولتحديد التمثيلات الحرفية
أحرف، مثل علامة الاقتباس المزدوجة ("). يتكون تسلسل الهروب من
من حرف الخط المائل العكسي (\) متبوعًا بحرف وعلامات
علامات الترقيم "علامة الاقتباس المفردة" ()، "علامة الاقتباس المزدوجة" (")،" الشرطة المائلة العكسية
شريط" (\) أو مجموعة من الأرقام.
إذا كانت الشرطة المائلة العكسية تسبق حرفًا غير مدرج في هذا
القائمة، يتم تجاهل الشرطة المائلة العكسية ويتم تمثيل الحرف كـ
حرفي. على سبيل المثال، تمثل الصورة "\c" الحرف "c" بالمعنى الحرفي
ثابت السلسلة أو الحرف.
يسمح لك التسلسلان "\ddd" و"\xdd" بتحديد أي حرف في ASCII
(كود واجهة المعلومات القياسية الأمريكية) كتسلسل
ثلاثة أرقام ثمانية أو رقمين سداسي عشري. على سبيل المثال، حرف الفضاء
يمكن تحديده كـ \010 أو \x08. يمكن تحديد رمز ASCII صفر كـ \0 أو
\x0. يمكن استخدام تسلسل ESC الثماني من واحد إلى
ثلاثة أرقام ثمانية. على سبيل المثال، يمكن تحديد حرف المسافة كـ \10. بالضبط
يمكن أيضًا استخدام تسلسل ESC الست عشري من
واحد إلى رقمين سداسي عشري. لذلك، التسلسل الست عشري
يمكن تحديد حرف المسافة كـ \x08 أو \x8.
تجدر الإشارة إلى أنه عند استخدام النظام الثماني أو الست عشري
تسلسل ESC في الأسطر، فأنت بحاجة إلى تحديد جميع الأرقام بالكامل
تسلسل ESC (ثلاثة أرقام للرقم الثماني ورقمين لـ
تسلسلات ESC الست عشرية). خلاف ذلك، إذا كان الرمز مباشرة
إن اتباع تسلسل ESC سوف يتبين بطريق الخطأ أنه ثماني أو
رقم سداسي عشري، سيتم تفسيره كجزء
تسلسلات. على سبيل المثال، سيكون السطر \x7Be11 عند طباعته
يبدو مثل ell لأنه سيتم تفسير \x7B على أنه حرف متعرج أيسر
اقواس (). ستكون السلسلة \x07Be11 هي التمثيل الصحيح لجرس الحرف
تليها كلمة الجرس.
تسمح لك تسلسلات ESC بإرسال أحرف تحكم غير رسومية
إلى الأجهزة الخارجية. على سبيل المثال، يتم استخدام تسلسل ESC \033 غالبًا
كالحرف الأول لأوامر التحكم في المحطة الطرفية والطابعة. غير رسومية
يجب دائمًا تمثيل الأحرف كتسلسلات ESC لأن
سيتم الاستخدام المباشر للرموز غير الرسومية في برامج C
الحصول على نتيجة غير متوقعة.
حرف الخط المائل العكسي (\) بالإضافة إلى تحديد تسلسلات ESC
يستخدم أيضًا كحرف استمرار السطر في تعريفات المعالج المسبق.
إذا كان حرف السطر الجديد يتبع حرف الخط المائل العكسي (\)،
ثم يتم تجاهل السطر الجديد ويتم التعامل مع السطر التالي كجزء
السطر السابق.
عندما يكون printf قليلًا جدًا ويكون ncurses أكثر من اللازم
عندما يكون هناك الكثير من البيانات، فإن إخراج printf القياسي في برنامج وحدة التحكم لا يكفي. خاصة إذا كان هناك الكثير من الأحداث المختلفة وتحولت البيانات المختلفة إلى قائمة مجنونة. يمكن أن تأتي هذه البيانات من وحدة التحكم عبر UART، وليست هناك حاجة للتفكير في أي نوع من برامج واجهة المستخدم الرسومية. قد يكون هناك أيضًا برنامج نصي bash عادي تريد إرفاق نوع من الواجهة الرسومية الزائفة به.
سأقول على الفور أنه في البداية قد يبدو الأمر وكأنه إعادة اختراع العجلة، لأن هناك مكتبة Ncurses ممتازة. أنا لا أقلل من مزاياها على الإطلاق، ولكن غالبًا ما تكون قدراتها زائدة عن الحاجة. بالإضافة إلى ذلك، فهو غير قابل للنقل بشكل جيد لوحدات التحكم وهو بالتأكيد زائد عن الحاجة هناك. ولكن يمكنك رسم بعض وحدات الماكرو والوظائف للعمل مع الرسوم الزائفة بنفسك.
لنفترض أن لدينا وحدة تحكم حيث يتم توصيل أجهزة استشعار الاتصال بمنفذ 8 بت يمكنه قبول حالات التشغيل والإيقاف، ويوجد مستشعر تناظري ثلاثي المحاور، ويجب علينا عرض حالتهم، بالإضافة إلى أن وحدة التحكم لديها الوقت والتاريخ والوقت. نريد التحكم في عرض الوقت الصحيح؛ وأخيرًا، قد يحدث حدث ما (على سبيل المثال، انقطاع التيار الكهربائي)، حيث يتعين علينا إبلاغ المشغل على وجه السرعة. دعونا نلخص:
يبدو أن الفكرة واضحة، ولكن كيفية تنفيذ ذلك في المحطة؟ هذا هو المكان الذي يبدأ فيه السحر الحقيقي! " والآن يجب عليك بالتأكيد أن تهب! إذا لم تنفخ، فلن تحدث معجزة!"حمياك هاكوبيان
اليوم، المحطة هي برنامج يمكن أن يكون محطة افتراضية، كما هو الحال في Linux، أو محطة تعمل مع منفذ COM. كل هذه المحطات، حتى HyperTerminal الكلاسيكية، تلبي معايير معينة. كما قد تتخيل، تحتاج هذه المحطات إلى الإدارة. هناك أحرف ASCII عادية يتم عرضها على الشاشة، وهناك تسلسلات خاصة من الأحرف تتيح لك ضبط إحداثيات المؤشر، ومسح الشاشة، وضبط اللون، وما إلى ذلك. في مقالاتي عن حبري وجيكتايمز، لقد تطرقت بالفعل مرارا وتكرارا إلى موضوع تسلسلات ESC. استخدمناها في التحكم في العرض (الوصف في المفسد الذي لم يقرأه أحد)، وفي مقال عنه، والذي يتم التحكم فيه أيضًا بواسطة تسلسلات ESC.
إذا عاد أي منكم إلى أيام BBS، فسوف يتذكر كم كانت هذه اللوحات "جميلة": ملونة، والتي تحتوي على حقول معينة لإدخال/إخراج المعلومات، وما إلى ذلك. تم عرض كل هذه الفرحة بمساعدة رموز التحكم هذه. يعتبر الحرف حرف تحكم إذا كان (قبل التحويل وفقًا لجدول التحويل) يحتوي على واحد من 14 رمزًا: 00 (NUL)، 0x07 (BEL)، 0x08 (BS)، 0x09 (HT)، 0x0a (LF)، 0x0b (VT)، 0x0c (FF)، 0x0d (CR)، 0x0e (SO)، 0x0f (SI)، 0x18 (CAN)، 0x1a (SUB)، 0x1b (ESC)، 0x7f (DEL). نحن مهتمون بشكل أساسي بالرمز ESC=0x1b أو "\033" أو "\e". يمكنك قراءة المزيد عن هذه التسلسلات في أدلة man console_codes، أو على الإنترنت باللغة الروسية.
بالإضافة إلى التحكم في المؤشر، يمكنك أيضًا طلاء الجهاز بألوان مختلفة (إذا كان ملونًا بالطبع). يمكنك التحقق من ألوان جهازك باستخدام برنامج BASH النصي البسيط:
ل fgbg في 38 48 ; قم بعمل #Foreground/Background للون باللون (0..256) ؛ do #Colors #Display the color echo -en "\e[$(fgbg);5;$(color)m $(color)\t\e ; ثم echo # سطر جديد تم تنفيذ echo # سطر جديد تم الخروج 0
ستكون نتيجة التنفيذ شيئًا مثل هذا:
الآن، لديك بالفعل المعلومات اللازمة لجعل بيض عيد الفصح ممتعًا في نصوص BASH، مثل الصورة الموجودة في عنوان المنشور.
#define home() printf(ESC " OSC (اختصار "أوامر نظام التشغيل")
ESC ] P nrrggbb: اضبط اللوحة بالمعلمات،
محدد في 7 أرقام سداسية عشرية بعد آخر P:-(.
هنا n هو اللون 0-16 ويشير rrggbb
لاستخدام الأحمر/الأخضر/الأزرق (0-255).
ESC ] R: إعادة تعيين لوحة الألوان
تسلسلات ECMA-48 CSI
CSI (أو ESC [) متبوعًا بالتسلسل
المعلمات، وهي أرقام عشرية مفصولة
فاصلة منقوطة (الأكبر هو NPAR(16)).
المعلمة "الفارغة" (أو غيابها) تعادل
صفر. يمكن أن يبدأ تسلسل المعلمات
علامة استفهام واحدة. ومع ذلك، بعد CSI [(أو ESC
[ [) يقرأ حرف واحد والباقي
يتم تجاهل التسلسلات. (معنى هذا
لتجاهل مفتاح الوظيفة المعروض).
يتم تحديد نتيجة تحديد تسلسل CSI من خلاله
حرف النهاية.
@ICH أدخل N أحرف فارغة.
CUU حرك المؤشر لأعلى لعدد N من الصفوف.
B CUD حرك المؤشر لأسفل لعدد N من الصفوف.
C CUF حرك المؤشر إلى الأعمدة N اليمنى.
D CUB حرك المؤشر إلى أعمدة N اليسرى.
E CNL حرك المؤشر لأسفل في صفوف N، إلى العمود رقم 1.
F CPL حرك المؤشر لأعلى في صفوف N، إلى العمود رقم 1.
G CHA حرك المؤشر إلى العمود المحدد في الصف الحالي.
H CUP حرك المؤشر إلى الصف والعمود المحددين (ابدأ عند 1،1).
J ED "مسح" الشاشة (افتراضيًا من المؤشر إلى نهاية الشاشة).
ESC [ 1 J: "مسح" من بداية العمود إلى المؤشر.
ESC [ 2 J: "مسح" الشاشة بأكملها.
K EL "مسح" السطر (افتراضيًا من المؤشر إلى نهايته).
ESC [ 1 K: "مسح" من بداية السطر إلى المؤشر.
ESC [ 2 K: "مسح" السطر بأكمله.
L IL أدخل N أسطر فارغة.
M DL حذف خطوط N.
P DCH حذف (مع إزاحة السطر) N من الأحرف في السطر الحالي.
X ECH "مسح" (بدون إزاحة سطر) N من الأحرف في السطر الحالي.
HPR حرك المؤشر إلى الأعمدة N اليمنى.
ج DA الرد ESC [ ؟ 6 ج: "أنا VT102".
d VPA حرك المؤشر إلى الصف المحدد في العمود الحالي.
e VPR حرك المؤشر لأسفل لعدد N من الصفوف.
f HVP حرك المؤشر إلى الصف والعمود المحددين.
g TBC لا توجد معلمات: "مسح" علامة التبويب الحالية.
ESC [ 3 g: حذف كافة علامات الجدولة.
h وضع التثبيت SM (انظر أدناه).
ل وضع إعادة تعيين RM (انظر أدناه).
m SGR قم بتعيين السمات (انظر أدناه).
n تقرير حالة DSR (انظر أدناه).
q DECLL اضبط أوضاع تشغيل المؤشرات الموجودة على لوحة المفاتيح.
ESC [ 0 q: قم بإيقاف تشغيل كافة المؤشرات
ESC [ 1 q: قم بتشغيل مؤشر "Scroll Lock".
ESC [ 2 q: قم بتشغيل مؤشر "Num Lock".
ESC [ 3 q: قم بتشغيل مؤشر "Caps Lock".
r DECSTBM تعيين منطقة التمرير؛ ستكون المعلمات هي الصفوف العلوية والسفلية.
س؟ حفظ موقع المؤشر.
أنت؟ استعادة موقع المؤشر.
` HPA حرك المؤشر إلى العمود المحدد في الصف الحالي.
ECMA-48 ضبط خيارات الرسومات
تسلسل ECMA-48 SGR لأحرف التحكم ESC [
م يضبط سمات الشاشة. بعض
يمكن تحديد السمات في تسلسل واحد.
بارام. نتيجة
0 إعادة تعيين كافة السمات إلى قيمها الافتراضية
1 مجموعة جريئة
مجموعتان أكثر سطوعًا (لون محاكاة على شاشة ملونة)
4 مجموعات من التسطير (محاكاة حسب اللون على شاشة ملونة)؛
يتم ضبط الألوان المستخدمة لمحاكاة التغميق أو التمييز
باستخدام إيسك] ...
5 تشغيل وميض
7 تمكين وضع الفيديو المقلوب
10 إعادة تعيين التوزيع المحدد، أعلام التحكم في الشاشة
وقم بتبديل علامة التعريف
11 حدد التوزيع الفارغ، واضبط علامة التحكم في الشاشة،
إعادة تعيين مفتاح علامة التعريف.
12 حدد التوزيع الفارغ، واضبط علامة التحكم في الشاشة،
تمكين مفتاح علامة التعريف. تبديل علامة التعريف
يحدد تبديل البت الأكثر أهمية في البايت
قبل تحويلها حسب جدول التوزيع.
21 تمكين وضع الكثافة العادية (غير متوافق مع ECMA-48)
22 قم بإيقاف تشغيل وضع الشدة العادية
24 إيقاف التسطير
25 إيقاف وميض
27 إيقاف تشغيل الفيديو المقلوب
30 مجموعة شخصية لون أسود
31 مجموعة حرف اللون الأحمر
32 مجموعة شخصية باللون الأخضر
33 مجموعة شخصية لون بني
34 مجموعة شخصية باللون الأزرق
35 مجموعة من الشخصيات ذات اللون الأرجواني
36 مجموعة شخصية باللون الأزرق
37 تعيين لون الحرف إلى اللون الأبيض
38 تمكين التسطير، تعيين لون الحرف الافتراضي
39 قم بإيقاف التسطير وضبط لون الحرف الافتراضي
40 تعيين لون الخلفية إلى اللون الأسود
41 مجموعة لون الخلفية أحمر
42 مجموعة لون الخلفية أخضر
43 اضبط لون الخلفية على اللون البني
44 مجموعة لون الخلفية أزرق
45 تعيين لون الخلفية إلى أرجواني
46 مجموعة لون الخلفية أزرق
47 تعيين لون الخلفية إلى اللون الأبيض
49 تعيين لون الخلفية الافتراضي
تبديل وضع ECMA-48
إي إس سي [ 3 ساعات
DECCRM (إيقاف افتراضي): عرض
شخصيات التحكم.
إي إس سي [ 4 ساعات
DECIM (إيقاف افتراضي): ضبط الوضع
الإدراج / الاستبدالات.
إي إس سي [ 20 ساعة
LF/NL (إيقاف التشغيل الافتراضي): تلقائي
عرض رمز CR بعد الرموز: LF أو VT أو FF.
أوامر الإبلاغ عن الحالة ECMA-48
إي إس سي [ 5 ن
رسالة حالة الجهاز (DSR): الرد
هو ESC [0 n (المحطة موافق).
ESC [ 6 ن
رسالة موضع المؤشر (CPR): الرد هو
ESC[y; x R، حيث x,y هي الإحداثيات
المؤشر.
تسلسلات DEC للوضع الخاص (DECSET/DECRST)
غير مشمول في ECMA-48. سيتم سرد ما يلي
تسلسل تثبيت الوضع؛ في تسلسل
لإعادة ضبط الأوضاع، يتم استبدال الحرف الأخير "h" بـ "l".
خروج [ ؟ 1 ساعة
DECCKM (تعطيل افتراضي): إذا تم تمكينه، إذن
تنتج مفاتيح المؤشر إشارة تبدأ بـ ESC
يا، ليس مع ESC [.
خروج [ ؟ 3 ساعات
DECCOLM (إيقاف التشغيل الافتراضي = 80 عمودًا):
وضع لتبديل عدد الأعمدة إلى 80 أو
132. في الإصدارات الأصلية من برنامج التشغيل تم تحديد ذلك
وهذا الأمر لا يكفي؛ بعض
المرافق المستخدم التي تستخدم
الأوضاع غير القياسية، مثل resizecons(8)،
يجب تغيير سجلات إعدادات وحدة التحكم
بطاقات الفيديو.
خروج [ ؟ 5 ساعات
DECCNM (تعطيل افتراضي): تمكين
وضع الفيديو المقلوب.
خروج [ ؟ 6 ساعات
DECOM (تعطيل افتراضي): إذا تم تمكينه، إذن
تعتبر إحداثيات المؤشر نسبة إلى
الزاوية اليسرى العليا في منطقة التمرير.
خروج [ ؟ 7 ساعات
DECAWM (ممكّن افتراضيًا): تمكين الوضع
النقل التلقائي. في هذا الوضع، الرمز الرسومي
تم إدخاله بعد العمود رقم 80 (أو رقم 132 إذا كان DEC-)
تم تمكين COLM)، للانتقال إلى بداية اليوم التالي
خطوط.
خروج [ ؟ 8 ساعات
DECARM (ممكّن افتراضيًا): تمكين الوضع
تكرار الأحرف تلقائيًا عند الضغط على أحد المفاتيح
لوحات المفاتيح.
خروج [ ؟ الساعة 9
تقرير حالة الماوس X10 (افتراضي
الماوس يساوي واحد أو صفر (إعادة تعيين)، انظر أدناه.
خروج [ ؟ 25 ساعة
DECCM (ممكّن افتراضيًا): إنشاء المؤشر
مرئي.
خروج [ ؟ 1000 ساعة
تقرير حالة الماوس X11 (افتراضي
إيقاف): ضبط وضع تقرير الحالة
الماوس يساوي 2 أو صفر (إعادة تعيين)، انظر أدناه.
تسلسلات CSI الخاصة بوحدة تحكم Linux
التسلسلات التالية ليست ECMA-48- ولا
تسلسل VT102. هم "الأصلية" ل
برامج تشغيل وحدة التحكم Linux. الألوان في معلمات SGR: 0 =
أسود، 1=أحمر، 2=أخضر، 3=بني، 4=
أزرق، 5 = أرجواني، 6 = أزرق فاتح، 7 = أبيض.
إيسك [1؛ n] قم بتعيين اللون n كلون للتسطير
إيسك [2؛ n] قم بتعيين اللون n كلون باهت
ESC [ 8 ] اضبط زوج الألوان الحالي على السمات الافتراضية.
إيسك [9؛ n ] اضبط الشاشة لبدء "التنظيف" بعد n دقيقة.
إي إس سي [ 10 ; n ] اضبط تردد إشارة الصوت (بالهرتز).
إيسك [11؛ n ] ضبط مدة الإشارة الصوتية بـ (ملي ثانية).
إيسك [12؛ n ] حرك وحدة التحكم المحددة أمام الآخرين.
ESC [ 13 ] استعادة الشاشة بعد "التنظيف".
إيسك [14؛ n ] اضبط الفاصل الزمني لإيقاف تشغيل VESA (بالدقائق).
مجموعات الشخصيات
تحتوي النواة على معلومات حول 4 أنواع من ترجمة البايت
رموز وحدة التحكم في الشاشة. هذه الجداول الأربعة
التحويل: أ) Latin1 -> الكمبيوتر الشخصي، ب) رسومات VT100 ->
الكمبيوتر الشخصي، ج) الكمبيوتر الشخصي -> الكمبيوتر الشخصي، د) المحدد من قبل المستخدم. في النظام
هناك عمومًا مجموعتان من الأحرف تسمى G0 وG1،
وأحدها هو مجموعة النظام الحالية (في الأصل
هذا هو G0). يؤدي إدخال ^N إلى جعل المجموعة G1 حالية، و^O
يجعل مجموعة G0 الحالية. تشير المتغيرات G0 وG1
جداول الرموز ويمكن للمستخدم تغييرها.
في البداية يشيرون إلى الجدولين أ) و ب)
على التوالى. تسلسل ESC (B وESC (0 و
يؤدي ESC(U وESC(K) إلى قيام G0 بالإشارة إلى الجداول
الترجمات أ)، ب)، ج) و د) على التوالي.
التسلسلات ESC) B وESC) 0 وESC) U وESC) K
اجعل G1 يشير إلى جداول الترجمة أ) و ب) و ج) و
د) وفقا لذلك. ينتج عن تسلسل ESC c
إعادة تعيين المحطة، وهذا هو، إلى ما تحتاجه ومتى
وجود "القمامة" على الشاشة. التوصية المذكورة بعد
"echo ^V^O" سيجعل G0 المجموعة الحالية فقط، ولكن ليس كذلك
ليس هناك ما يضمن أن G0 سيشير إلى الجدول أ). في
تحتوي بعض الإصدارات على إعادة تعيين البرنامج (1)، والتي فقط
ينفذ الأمر "echo ^" فقط
يتم البحث عن الصورة المقابلة لـ s في الرمز ROM و
يمكن تغييرها باستخدام setfont(8).
استخدام الماوس
يتضمن نظام تتبع نشاط الماوس الإصدار
إشارات حالة الماوس المتوافقة مع xterm. منذ السائق
لا تتعرف وحدة التحكم على جهاز مثل الماوس (أو جهازه
اكتب)، ثم يتم إرسال هذه الإشارات إلى دفق الإدخال
وحدة التحكم، فقط عندما يكون برنامج تشغيل المحطة الظاهرية
يتلقى إشارة ioctl لتحديث حالة الماوس. هؤلاء
يجب أن يتم إنشاء إشارات ioctls من قبل المستخدم
التطبيقات التي تدعم الماوس (مثل
gpm(8) الشيطان). المعلمة لجميع xterm التي تم إنشاؤها
تسلسل ESC (إشارات حركة الماوس)
سيكون هناك حرف واحد رمزه هو القيمة+040. على سبيل المثال،
`!" يتوافق مع واحد. نظام إحداثيات الشاشة متى
يعتمد تتبع الماوس على علامة الوحدة. في
وضع التوافق X10 عند الضغط على الأزرار
يتم إرسال تسلسلات ESC فيها
حالة الماوس ومعلومات حول الزر الذي تم الضغط عليه. وضع
يعمل عند ESC [ ؟ 9 ساعات وينطفئ عند
إصدار ESC [؟ 9 لتر. عند الضغط على زر يرسل xterm
ESC [ M bxy (6 أحرف)، حيث b هو الزر 1 وx وy
يساوي إحداثيات x وy عند الضغط على هذا الزر. هذا
نفس الرموز التي تولد وتخرج نواة النظام. في
وضع تتبع الماوس العادي (والذي لم يكن كذلك
تم تنفيذه في Linux 2.0.24) تسلسلات ESC
يتم إرسالها عند الضغط على زر الماوس ثم تحريره.
يتم أيضًا إرسال معلومات حول المُعدِّل. يبدأ
الوضع عند إصدار ESC [؟ 1000 ساعة ويطفئ عند التوزيع
إي إس سي [ 1000 لتر. عند الضغط على زر xterm والإفراج عنه
قضايا ESC [M bxy. يحتوي الجزءان السفليان من b على معلومات
حول الأزرار: 0=تم الضغط على MB1، 1=تم الضغط على MB2، 2=تم الضغط على MB3،
3=مفرج عنه. تحتوي البتات الأكثر أهمية على معلومات حول أي منها
تم إيقاف تشغيل المعدلات عند الضغط على الزر. هذا
تتم إضافة المعلومات عند الضغط عليها: 4=Shift، 8=Meta،
16=التحكم. مرة أخرى: x وy هما إحداثيات x وy
الماوس عند معالجة الحدث. الإحداثيات العلوية اليسرى
تعتبر الزوايا (1،1).
مقارنة مع المحطات الأخرى
يتم وصف العديد من الأنواع الأخرى من المحطات مثل
وحدات تحكم Linux (مثل "المتوافقة مع VT100").
الاختلافات بين وحدة تحكم Linux والاثنين الآخرين الأكثر أهمية
الأنواع، DEC VT102 وxterm(1).
التعامل مع أحرف التحكم
يتعرف النوع vt102 أيضًا على أحرف التحكم التالية:
تم تجاهل NUL (0x00)؛
بدأت رسالة الاستجابة العكسية ENQ (0x05)؛
DC1 (0x11، ^Q، XON) تابع الإرسال؛
يشير DC3 (0x13، ^S، XOFF) إلى أن vt100 مطلوب
تجاهل وإيقاف إرسال جميع الرموز لـ
باستثناء XOFF وXON
يمكن بدء معالجة DC1/DC3 المشابهة لـ VT100
سائق تي تي.
يتعرف برنامج xterm (في وضع vt100) على التحكم
الرموز التالية: BEL، BS، HT، LF، VT، FF، CR، SO، SI،
خروج.
تسلسل ESC
لم يتم تنفيذ تسلسلات وحدة التحكم VT100 في
وحدات تحكم لينكس:
ESC N SS2 Shift بمقدار 2. (حدد مجموعة الأحرف G2 فقط للتالي
رمز.)
ESC O SS3 Shift بمقدار 3. (حدد مجموعة الأحرف G3 فقط للتالي
رمز.)
خط التحكم في جهاز ESC P DCS (ينتهي بـ ESC\)
ESC X SOS بداية الخط.
ESC ^ PM رسالة خاصة (تنتهي بـ ESC\)
ESC\ST إنهاء 0 أسطر
ESC * ... تحديد مجموعة الأحرف G2
ESC +... تحديد مجموعة أحرف G3
يتعرف برنامج xterm (في وضع vt100) على: ESC c, ESC #
8، ESC >، ESC =، ESC D، ESC E، ESC H، ESC M، ESC N، ESC O،
ESC P ... ESC ESC Z (ينتج التسلسلات ESC [
؟ 1 ؛ إجابة 2C: `أنا vt100 مع تحسين
معلمات الفيديو") وESC ^ ... ESC بنفس القيم،
والتي تم الإشارة إليها أعلاه. مقبول: ESC (، ESC)، ESC *،
ESC +,- متبوعًا بـ 0، A، B للأحرف الخاصة
أوضاع DEC ورسم الخط، UK وUSASCII على التوالي.
ESC ] مقبولة لتعيين تشغيل هذه الموارد،
كيف:
إيسك ] 0 ; txt BEL قم بتعيين اسم الرمز وعنوان النافذة في وضع txt.
إي إس سي ] 1 ; txt BEL تعيين اسم الرمز في وضع txt.
إي إس سي ] 2 ; txt BEL قم بتعيين عنوان النافذة في وضع txt.
إي إس سي ] 4 6 ; name BEL قم بتغيير ملف السجل إلى الاسم (يتم تعطيله عادةً
خيارات التجميع)
إي إس سي ] 5 0 ; fn BEL قم بتعيين الخط fn.
يتم التعرف على المعلمات التالية مع تعديل طفيف
معنى:
ESC F: قم بتمرير المؤشر إلى الزاوية اليسرى السفلية من الشاشة (إذا كان ممكّنًا
الموارد hpLowerleftBugCompat)
ESC l حظر الذاكرة (لمحطات HP).
أقفال الذاكرة فوق المؤشر.
ESC m يفتح الذاكرة (لمحطات HP).
ESC n LS2 أدخل مجموعة الأحرف G2.
ESC o LS3 أدخل مجموعة أحرف G3.
إي إس سي | LS3R أدخل مجموعة أحرف G3 كـ GR.
ESC ) LS2R أدخل مجموعة الأحرف G2 كـ GR.
ليس له أي تأثير واضح في إكستيرم.
ESC ~ LS1R أدخل مجموعة الأحرف G1 كـ GR.
ليس له أي تأثير واضح في إكستيرم.
لم يتم التعرف على نسبة ESC...
تسلسلات منظمة التضامن المسيحي الدولية
برنامج xterm (حسب XFree86 3.1.2G) لا يتعرف
الخفقان أو وضع التخفي SGRs. إصدارات X11R6 ليست كذلك
التعرف على إعدادات الألوان SGR. جميع ECMA-48 الأخرى
تسلسلات CSI المعترف بها بواسطة Linux موجودة أيضًا
يتم التعرف عليها بواسطة xterm والعكس صحيح. سوف يقوم برنامج xterm
التعرف على جميع تسلسلات الوضع الخاص لـ DEC،
المذكورة أعلاه، ولكن لن يتم التعرف على أي منها
تسلسل الوضع الخاص في Linux ل
مناقشة تسلسل الوضع الخاص لـ xterm
قم بالرجوع إلى مستند XtermControlSequences الذي تم إنشاؤه بواسطة
إدوارد موي وستيفن جيلديا ويرافقهما
توزيع نظام النافذة X.
تم العثور على أخطاء
في الإصدار 2.0.23، مجموعة CSI غير صحيحة و
غير صالح، ولا يتم تجاهل NUL داخليًا
تسلسل ESC.