تسلسل الهروب في تي 100:حركة المؤشر التفاف حول نهاية السطر

StackOverflow https://stackoverflow.com//questions/25038426

  •  21-12-2019
  •  | 
  •  

سؤال

أنا إنشاء تطبيق تلنيت كلي التي يتم التحكم مع فت 100 تسلسل الهروب.على سبيل المثال.انتقل المؤشر ترك <ESC>[د يتم إرسال تسلسل الهروب من خادم التلنت إلى العميل ، والذي قد يكون معجونا أو محطة جنوم.لسوء الحظ ، مع وجود خطوط أطول من طول خط المعجون ، لن يسمح تسلسل الهروب أعلاه بالتنقل في المؤشر إلى السطر أعلى السطر الحالي.

مثال.المؤشر هو|/'.يتم وضع علامة التعليقات مع'//'

----------------
>potato| // Now I press left arrow which sends esc sequence to application
----------------
>potat|o // Works as expected. The cursor moved left
----------------

مثال آخر

----------------
>potatopotatopot // This is a long command which goes over two lines
|ato             // Now I press left arrow which sends esc sequence to application
----------------
>potatopotatopot // The cursor didn't move, since the escape sequence 
|ato             // does nothing if the cursor is at the edge
----------------

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

فكيف يتم التعامل مع التنقل الطرفي مثل هذا بشكل شائع?

هل كانت مفيدة؟

المحلول

ال bw القدرة في وصف محطة تيرمكاب يقول ما إذا كان يتحرك اليسار على حافة الشاشة يلتف إلى السطر السابق.كان موجودا في وصف المعجون راجعت (infocmp putty ولكن ليس في العديد من الآخرين (على سبيل المثال.ليس في infocmp gnome).

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

نصائح أخرى

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

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

CSI Ps n  Device Status Report (DSR).
            Ps = 5  -> Status Report.
          Result (``OK'') is CSI 0 n
            Ps = 6  -> Report Cursor Position (CPR) [row;column].
          Result is CSI r ; c R

ال resize يستخدم البرنامج هذا عن طريق

  • إرسال المؤشر إلى الزاوية اليمنى السفلى من نافذة "ضخمة" (999 في 999
  • إرسال تسلسل الإنعاش القلبي الرئوي
  • قراءة تقرير موضع المؤشر الفعلي

بمعرفة حجم الشاشة ، يمكن للخادم إرسال المؤشر إلى مواضع أكثر فائدة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top