غير قادر على إيقاف تلقائي الهوامش من قبل termcap في ماك

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

سؤال

أنا في حاجة لتحويل التلقائي هوامش قبالة حسب البيان التالي من الشاشة دليل في بلدي ماك

إذا الخاص بك هو محطة "حقيقية" السيارات-هامش محطة (فإنه لا يسمح موقف آخر على الشاشة إلى تحديث دون التمرير الشاشة) النظر في استخدام الإصدار من محطة termcap أن وقد التلقائي هوامش إيقاف.

كيف يمكنك تحويل التلقائي الهوامش عن طريق محطة termcap?

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

المحلول

وفقا إكس تيرم التحكم في تسلسل, هذا تسلسل يجب أن تفعل ما طلب:

CSI ? 7 l

وهذا هو ،

printf '\033[?7l'

على 7 هو توثيق

        Ps = 7  -> Wraparound Mode (DECAWM).

و الحرف الأخير l (الحرف L) يدل هذا إعادة تعيين بدلا من مجموعة التحكم.

لأي سبب من الأسباب ، terminfo اسم هذا هو أكثر غموضا:"التلقائي الهوامش".هذه terminfo قدرات التعامل مع ميزة (انظر terminfo(5)):

   auto_right_margin             am         am        terminal has auto‐
                                                      matic margins
   enter_am_mode                 smam       SA        turn on automatic
                                                      margins
   exit_am_mode                  rmam       RA        turn off automatic
                                                      margins

ومن المثير للاهتمام ، vt100-نام وصف المحطة في سأركع (التي على ما يبدو لا أحد يستخدم) تهيئة محطة استخدام automargins الهوامش باستخدام هذه السلسلة:

rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, 

(إن \E[?7h مجموعات) ، ويؤكد أن المحطة لا تستخدم التلقائي هوامش بإلغاء am.كما أن لديها قدرات terminfo rmam و smam.حتى يمكنك أن تفعل هذا لإثبات أن يعمل:

tput rmam
stty columns 999
ps -efwwwwwl

و (على المستخدم العادي) انظر ps سرد جيد اقتطاع ضد الهامش الأيمن من نافذة المحطة.

المتغيرات الأخرى vt220-نام vt320-نام تظهر الصحيح...

بالمناسبة ، ماك, يمكنك استخدام terminfo أسماء مثل rmcup بدلا من termcap RA, لأن OSX يستخدم سأركع' tput (terminfo) بدلا من BSD البديل.

مزيد من القراءة:

أحيانا شخص ما يسأل عن قمع automargins لأنها لنفترض أن المحطات يمكن أن عموم/انتقل إلى اليسار/الحق في عرض المعلومات التي لم تكن ملفوفة إلى سطر جديد.المحطات التي تفعل هذه نادرة ، OSX المحطة ليست واحدة من تلك.فإنه يتصرف مثل مجموعة فرعية من إكس تيرم نفسها التي يحاكي المسلسل من ديسمبر المحطات vt52/vt100/vt220/الخ.في هذا السؤال, OP تشعر/الخلط حول هذه الفقرة من screen دليل:

إذا الخاص بك هو محطة "حقيقية" لصناعة السيارات في الهامش محطة (فإنه لا يسمح الموقف الأخير على الشاشة إلى تحديث دون التمرير الشاشة) النظر في استخدام نسخة من محطة الخاص بك هو termcap الذي التلقائي هوامش إيقاف.وهذا يضمن دقة الأمثل تحديث الشاشة في كل الظروف.معظم المحطات في الوقت الحاضر قد "السحر" الهوامش (تلقائي هوامش بالإضافة إلى استخدامها العمود الأخير).هذا هو VT100 نوع نمط ومناسبة تماما على الشاشة.إذا كل ما عليك هو "صحيح" لصناعة السيارات في الهامش شاشة محطة سوف يكون مضمون لاستخدامه, ولكن تحديث حرف وضع في موقف آخر على الشاشة قد لا يكون من الممكن حتى الشاشة مخطوطات أو الحرف انتقلت الى وضع الأمان في بعض طريقة أخرى.هذا التأخير يمكن اختصارها باستخدام محطة مع إدراج حرف القدرة.

أن الموقف الأخير على الشاشة يشير إلى الركن الأيمن السفلي من المحطة.في الحالة الطبيعية ، إذا كان المؤشر على الركن الأيمن السفلي طباعة حرف, تتوقعون عرض انتقل من سطر واحد و إظهار الحرف على السطر التالي.أيضا (لأن المحطات يمكن تنفيذها بطرق مختلفة) ، يمكن أن انتقل لأعلى عند طباعة حرف في الموقف الأخير.على VT100 لا تفعل هذا.ليس فقط أنها لا انتقل في هذه الحالة ، ولكنه يتجاهل الأحرف غير القابلة للطباعة في حين على الهامش (انظر التعليمات إكس تيرم هذا الوصف من التفاف غريب أقول أكثر من ذلك ؟ ).هناك terminfo العلم xenl والتي من المتوقع أن تظهر عند المحطة هل هذا خاص السلوك.حوالي ثلث من محطة الأوصاف في محطة قاعدة البيانات يكون هذا العلم.في حين أن معظم هذه المحطات التي كنت على الأرجح سوف تواجه أبدا, نضع في اعتبارنا أن المشورة في دليل الصفحات كتبت في عصر عند تلك المحطات كانت كما من المحتمل أن يكون كما وجدت VT100-يشبهه.أوائل تغيير التاريخ على الشاشة الفقراء ، ولكن النص في الشاشة الثانية نشر Usenet في عام 1992.الأولي الذي نشر في عام 1987 قال شيئا من هذا القبيل:

الشاشة لم يكتب في آخر موقف من الشاشة ، ما لم تكن منطقية القدرة LP وجدت في termcap دخول المحطة.عادة ، الشاشة لا يمكن التنبؤ ما إذا كان أو لا معين محطة مخطوطات عندما حرف كتب في آخر عمود من السطر الأخير; LP يشير إلى أنه آمن أن أكتب في هذا الموقف.علما بأن LP قدرة مستقلة am (التلقائي هامش);بعض المحطات مثل VT100, فمن المعقول إلى مجموعة am وكذلك LP في المقابلة termcap دخول (إن VT100 لا يتحرك المؤشر عند حرف هو مكتوب في العمود الأخير من كل سطر).

في وقت لاحق صيغة يعكس حقيقة أن terminfo كان النظام السائد ، واسم LP لم يكن termcap اسم المختار المقابلة مع xenl (فمن xn).

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

  • باستخدام طريقة مختلفة (إدراج) ،
  • ضع المؤشر على آخر موقف من العرض ،
  • كتابة الأحرف لملء ، دفع حرف في المركز الأخير ،
  • بدوره إدراج وضع قبالة مرة واحدة يتم ذلك (وإلا إزعاج).

حوالي ثلثي الأوصاف في محطة قاعدة البيانات لديها القدرة على القيام بذلك إدراج وضع (smir).التي كانت لا تزال غير مثالية ، لكنها بالتأكيد يستحق الذكر في عام 1992.حوالي ربع تنفيذ مماثل ميزة مشابهة ich1.بعض تنفذ على حد سواء (، vi يمكن الحصول على الخلط من جانب تلك التي تحاول أن تفعل كل الأساليب).

VT100-أشباه توفر طريقة ثالثة كتابة هذا الموقف ؛ screen الشيكات و يستخدم كل ما هو هناك.

نصائح أخرى

أكثر محطة المحاكي ، بما في ذلك ماك الافتراضي المحطة ، ليست "حقيقية لصناعة السيارات في الهامش المحطات" بمعنى مناقشتها هنا - أنها محاكاة vt100-سلسلة المحطة التي كان "الذكية" ملفوف.يمكنك التحقق من تشغيل cat و الكتابة إلى نهاية السطر الأخير - بعد كتابة الحرف الأخير ، ويظل المؤشر في نهاية السطر (تسليط الضوء على الحرف الذي كتبته تماما) حتى اكتب حرف آخر.

النتيجة الوحيدة من 'صحيح السيارات-هامش محطة' هو أن الطابع لا يمكن عرضها في أسفل الزاوية اليمنى (على الرغم من بعض البرامج قادرة على العمل في جميع أنحاء هذا عن طريق تحويل حرف في مكانه مع ich/ich1)

إذا فهمت بشكل صحيح كنت تبحث عن تعيين autowrap ميزة لا باستخدام terminfo قاعدة البيانات الخاصة بنا.إذا كنت تعتقد يمكنك استخدام نام العلم إلى إيقاف تشغيله - شيء مثل vt100-نام ينبغي أن تفعل ذلك.يمكنك أيضا التحقق من خلال النظر في صفحات الرجل على terminfo.

إذا كان هذا يحل السؤال علامة هذا الأمر.(^_^) إذا لم...حسنا التعليق مرة أخرى وأنا سوف تحقق مرة أخرى بالنسبة لك.هتاف!

تحديث:هناك أيضا اختصار التي قد تنطبق عليك تبديل التفاف على.تحقق من الاختصار ورقة هنا.معلومات إضافية عن الشاشة يمكن العثور عليها هنا (البحث عن التفاف).يمكنك أيضا التحقق من هنا على كيفية استخدام setterm (القسم 17.14 تغيير إعدادات المحطة).أيضا التحقق هنا للحصول على أمثلة من تغيير الإعدادات.

حظا سعيدا مرة أخرى.(^_^)

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