يمكن للمرء أن تسليط الضوء على أحرف الجدولة في المحطة؟

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

سؤال

وعن طريق تسلسل محطة، ويمكنني أن لون النص في محطة المحاكي:

$ echo -e '\e[37;41m--this is white on red--\e[0m'

وهذا يعمل.

وفيما يلي يطبع مستطيل أحمر، أي الأحرف الفضاء لديهم خلفية حمراء والمقدمة فارغة:

$ echo -e '\e[37;41m     \e[0m '

ولكن يطبع التاليين المستطيلات الحمراء مفصولة التبويب:

$ echo -e '\e[37;41m  \t  \e[0m '

وهذا يعني أن حرف جدولة لا يتلقى تسليط الضوء على الخلفية الحمراء. فإنه يأخذ اللون محطة الخلفية الافتراضية.

لماذا لا يتم تسليط الضوء التبويب مثل الفضاء؟ يمكنني فرض هذا بطريقة أخرى؟

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

المحلول 2

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

اقتراح

والحل سيكون في ankon لتحويل علامات التبويب إلى مسافات قبل الطباعة.

نصائح أخرى

إذا كنت لا تحتاج علامات التبويب أن تكون علامات التبويب، هل يمكن أن المعالجة المسبقة النص من خلال توسيع (1).

ولأنه كان من الصعب بالنسبة لي لإيجاد حل لطيفة (وكان هذا أول صفحة نتيجة البحث) ... هذا ما لدي في ملف .bashrc (من <لأ href = "http://pastebin.com/ Pn1fkkJq "يختلط =" نوفولو "> http://pastebin.com/Pn1fkkJq مع بعض التعديلات):

catt() { # Highlight whitespace on the terminal -- rolfwr
    local C=`printf '\033[0;36m'` R=`printf '\033[0m'`
    #cat "$@" | sed -e "s/      /${C}▹▹▹▹▹▹▹▹$R/g" -e "s/ /${C}·$R/g" -e "s/$/${C}⁋$R/"
    #cat "$@" | sed -e "s/ /${C}·$R/g" -e "s/\t/${C} ▹▹ $R/g" -e "s/$/${C}⁋$R/"
    cat "$@" | sed -e "s/ /${C}·$R/g" | expand | sed -e "s/ \( *\)/${C}▹\1$R/g" -e "s/$/${C}⁋$R/"
    #cat "$@" | sed -e "s/ /${C}.$R/g" | expand | sed -e "s/ \( *\)/${C}>\1$R/g" -e "s/$/${C}P$R/"
}

والأمل وهذا سوف يساعد شخص آخر أيضا.

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