הוספת צבע
רוב תוכניות אמולטור המסוף מגיבות לרצפי תווים מסוימים שאינם מודפסים כדי לשלוט בדברים כגון תכונות אופי (כמו צבע, טקסט מודגש והטקסט המהבהב המפחיד) ומיקום הסמן. נסקור את מיקום הסמן בעוד מעט, אבל קודם נסתכל על הצבע.
בלבול טרמינלי
עוד בימי קדם, כאשר מסופים היו מחוברים למחשבים מרוחקים, היו הרבה מותגים מתחרים של מסופים וכולם עבדו אחרת. היו להם מקלדות שונות ולכולם היו דרכים שונות לפרש מידע בקרה. למערכות Unix ו-Unix יש שתי תת-מערכות מורכבות למדי להתמודדות עם הבבל של בקרת מסוף (נקראת termcap ו מונח מידע). אם תסתכל בשקעים העמוקים ביותר של הגדרות אמולטור המסוף שלך, ייתכן שתמצא הגדרה לסוג הדמיית המסוף.
במאמץ לגרום לטרמינלים לדבר איזושהי שפה משותפת, מכון התקנים הלאומי האמריקאי (ANSI) פיתח סט סטנדרטי של רצפי תווים לשליטה במסופי וידאו. משתמשי DOS של פעם יזכרו את AN- SI.SYS קובץ ששימש כדי לאפשר פרשנות של קודים אלה.
צבע התווים נשלט על ידי שליחת אמולטור הטרמינל an קוד מילוט ANSI מוטבע בזרם התווים שיוצגו. קוד הבקרה אינו "מודפס" על הצג, אלא הוא מתפרש על ידי המסוף כהוראה. כפי שראינו בטבלה למעלה, ה \[ ו \] רצפים משמשים כדי להכיל תווים שאינם מודפסים. קוד בריחה של ANSI מתחיל באוקטלי 033 (הקוד שנוצר על ידי מפתח ה-escape), ואחריו תכונת תו אופציונלית, ואחריו הוראה. לדוגמה, הקוד להגדיר את צבע הטקסט לרגיל (תכונה = 0), טקסט שחור הוא:
\033[0;30m
להלן טבלה של צבעי טקסט זמינים. שימו לב שהצבעים מחולקים לשתי קבוצות, המובדלות על ידי יישום תכונת התווים המודגשת (1) היוצרת מראה של צבעים "בהירים":
טבלה 13- 2: רצפי בריחה המשמשים להגדרת צבעי טקסט
רצף | צבע טקסט | רצף | צבע טקסט |
\033[0;30m | שחור | \033[1;30m | אפור כהה |
\033[0;31m | Red | \033[1;31m | אדום בהיר |
\033[0;32m | ירוק | \033[1;32m | אור ירוק |
\033[0;33m | חום | \033[1;33m | צהוב |
\033[0;34m | כָּחוֹל | \033[1;34m | תכלת |
\033[0;35m | סָגוֹל | \033[1;35m | סגול בהיר |
הוספת צבע
\033[0;36m | ציאן | \033[1;36m | ציאן קל |
\033[0;37m | אפור בהיר | \033[1;37m | לבן |
בוא ננסה לעשות הנחיה אדומה. נכניס את קוד הבריחה בהתחלה:
$ PS1="\[\033[0;31m\]<\u@\h \W>\$ "
$
$ PS1="\[\033[0;31m\]<\u@\h \W>\$ "
$
זה עובד, אבל שימו לב שכל הטקסט שאנו מקלידים אחרי ההנחיה הוא גם אדום. כדי לתקן זאת, נוסיף קוד בריחה נוסף לסוף ההנחיה שאומר לאמולטור הטרמינל לחזור לצבע הקודם:
$ PS1="\[\033[0;31m\]<\u@\h \W>\$\[\033[0m\] "
$
$ PS1="\[\033[0;31m\]<\u@\h \W>\$\[\033[0m\] "
$
זה יותר טוב!
אפשר גם להגדיר את צבע הרקע של הטקסט באמצעות הקודים המפורטים להלן. צבעי הרקע אינם תומכים בתכונה המודגשת.
טבלה 13-3: רצפי בריחה המשמשים להגדרת צבע רקע
רצף | צבע רקע | רצף | צבע רקע |
\033[0;40m | שחור | \033[0;44m | כָּחוֹל |
\033[0;41m | Red | \033[0;45m | סָגוֹל |
\033[0;42m | ירוק | \033[0;46m | ציאן |
\033[0;43m | חום | \033[0;47m | אפור בהיר |
אנו יכולים ליצור הנחיה עם רקע אדום על ידי החלת שינוי פשוט בקוד הבריחה הראשון:
$ PS1="\[\033[0;41m\]<\u@\h \W>\$\[\033[0m\] "
<me@linuxbox ~>$
$ PS1="\[\033[0;41m\]<\u@\h \W>\$\[\033[0m\] "
<me@linuxbox ~>$
נסה את קודי הצבע וראה מה אתה יכול ליצור!
הערה: מלבד תכונות התווים הרגילות (0) והבולטות (1), טקסט עשוי לקבל גם קו תחתון (4), מהבהב (5) ותכונות הפוכה (7). למען הטעם הטוב, אמולטורים סופניים רבים מסרבים לכבד את התכונה המהבהבת, עם זאת.