الكتابة فوق الكتابة فوق نفسها عندما تصبح الأوامر طويلة جدا

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

  •  19-09-2019
  •  | 
  •  

سؤال

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

سوف يعمل الأمر على ما يرام، لكنه مزعج حقا، أفترض أن هناك بعض الإعدادات التي من شأنها إصلاح هذا بالنسبة لي؟

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

المحلول

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

إذا كانت هذه هي المشكلة التي تضيفها:

shopt -s checkwinsize

يجب أن تجعله يذهب بعيدا.

نصائح أخرى

لقد حلت هذا نفسي فقط.

كان مجرد بعض الهروب من الألوان في موجه الأوامر PS1:

LTGREEN="\033[40;1;32m"
LTBLUE="\033[40;1;34m"
CLEAR="\033[0m"
LIGHT_GRAY="\033[40;1;33m"
export PS1="$LTGREEN\u$LTBLUE@\h:$LIGHT_GRAY\w$CLEAR ❯ "

المشكلة هي أن حرفيات الألوان غير مرفقة بين قوسين. وضع الأقواس المتفجرة من حولها يعمل على إصلاح المشكلة بالكامل:

LTGREEN="\[\033[40;1;32m\]"
LTBLUE="\[\033[40;1;34m\]"
CLEAR="\[\033[0m\]"
LIGHT_GRAY="\[\033[40;1;33m\]"
export PS1="$LTGREEN\u$LTBLUE@\h:$LIGHT_GRAY\w$CLEAR ❯ "

أتمنى أن يساعدك هذا.

يحاول:

eval $(resize)

ََََََََََ

حاول الضغط كنترول + ل. وبعد (أو ربما بديل + ل - شيئا ما + ل على أي حال.) إذا كنت أتذكر بحق هذا إعادة تشغيل التعليمات البرمجية لمعرفة حجم المحطة الطرفية وضبط وفقا لذلك.

Ctrl-l

يعمل CTRL-L. أعتقد أن المعجونة اللازمة ل

هذه المحلول عملت بالنسبة لي: أضف المقتطف التالي إلى .bashrc:

if [ $(tty) == '/dev/ttyS0' ]; then
  trap resize DEBUG
fi

لا علاقة له مع المعجون ISM "باش".

إنه مفيد للغاية بمجرد استخدامك لذلك، ولكن إذا أثيرك يمكنك التبديل إلى "KSH" الذي يفعل شيئا مختلفا مع خطوط الأوامر الطويلة (غير متأكد من ما على ديبيان!)

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