Онлайн робочі станції OnWorks Linux та Windows

логотип

Безкоштовний онлайн-хостинг для робочих станцій

<Попередній | зміст | Наступна>

Переміщення курсору

Для розташування курсору можна використовувати escape-коди. Це зазвичай використовується для надання годинника або іншої інформації в іншому місці на екрані, наприклад у верхній куті кожного разу, коли намальовується підказка. Ось список escape-кодів, які встановлюють курсор:


Таблиця 13-4: Вихідні послідовності руху курсора

Escape Code Action

\033[l;cH Перемістіть курсор на рядок l і колонка c


зображення

\033[nA Перемістіть курсор вгору n ліній


зображення

\033[nB Перемістіть курсор вниз n ліній


зображення

\033[nC Перемістіть курсор вперед n символи


зображення

\033[nD Перемістіть курсор назад n символи


зображення

\033[2J Очистіть екран і перемістіть курсор у верхній лівий кут (рядок 0, стовпець 0)


зображення

\033[K Очистити від позиції курсору до кінця поточного рядка


зображення

\033[s Збереження поточної позиції курсору


зображення

\033[u Викликати збережену позицію курсору


зображення


Використовуючи наведені вище коди, ми створимо підказку, яка малює червону смугу у верхній частині екрана, що містить годинник (відображається жовтим текстом) щоразу, коли підказка відображається. Код підказки - це ось такий приголомшливий на вигляд рядок:



PS1="\[\033[s\033[0;0H\033[0;41m\033[K\033[1;33m\t\033[0m\033[u\]

<\u@\h \W>\$ "

PS1="\[\033[s\033[0;0H\033[0;41m\033[K\033[1;33m\t\033[0m\033[u\]

<\u@\h \W>\$ "


Давайте подивимося на кожну частину рядка, щоб побачити, що вона робить:

Переміщення курсору


Таблиця 13-5: Розбивка складного рядка підказки


Послідовність дії

Послідовність дії

\[ Починає недруковану послідовність символів. Мета цього – дозволити bash правильно розрахувати розмір видимого підказки. Без точного розрахунку функції редагування командного рядка не можуть правильно розташувати курсор.


зображення

\033[s Збережіть позицію курсору. Це потрібно, щоб повернутися до оперативного розташування після того, як у верхній частині екрана буде намальована панель і годинник. Майте на увазі, що деякі емулятори терміналів не розпізнають цей код.


зображення

\033[0;0H Перемістіть курсор у верхній лівий кут, який є рядком 0, стовпцем 0.


зображення

\033[0;41m Встановіть червоний колір фону.


зображення

\033[К Очистити від поточного розташування курсору (верхній лівий кут) до кінця рядка. Оскільки колір фону тепер червоний, лінія очищається до цього кольору, створюючи нашу панель. Зверніть увагу, що очищення до кінця рядка не змінює положення курсору, який залишається у верхньому лівому куті.


зображення

\033[1;33m Встановити жовтий колір тексту.


зображення

\t Відображення поточного часу. Хоча це «друкований» елемент, ми все одно включаємо його в недруковану частину підказки, оскільки ми не хочемо, щоб bash включав годинник під час обчислення справжнього розміру відображуваного підказки.


зображення

\033[0m Вимкнути колір. Це впливає як на текст, так і на фон.


зображення

\033[u Відновити позицію курсору, збережену раніше.


зображення

\] Завершення послідовності недрукованих символів.


зображення

<\u@\h \W>\$ Рядок підказки.


зображення


Найпопулярніші хмарні обчислення ОС на OnWorks: