Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

Перемещение курсора

Коды выхода могут использоваться для установки курсора. Обычно это используется для предоставления часов или другой информации в другом месте на экране, например в верхнем углу, каждый раз, когда отображается подсказка. Вот список управляющих кодов, устанавливающих курсор:


Таблица 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 [K Очистить от текущего положения курсора (верхний левый угол) до конца строки. Поскольку цвет фона теперь красный, линия очищается до этого цвета, создавая нашу полосу. Обратите внимание, что очистка до конца строки не меняет положение курсора, который остается в верхнем левом углу.


\ 033 [1; 33m Установите желтый цвет текста.


\t Отображение текущего времени. Хотя это «печатающий» элемент, мы по-прежнему включаем его в непечатаемую часть приглашения, поскольку мы не хотим, чтобы bash включал часы при вычислении истинного размера отображаемого приглашения.


\ 033 [0m Отключить цвет. Это влияет как на текст, так и на фон.


\ 033 [u Восстановить ранее сохраненную позицию курсора.


\] Завершить последовательность непечатаемых символов.


<\ u @ \ h \ W> \ $ Строка подсказки.



Лучшие облачные вычисления для ОС в OnWorks: