Консоль
-
ИМЯ
- console — Управление консолью на системах без реальной консоли
- СИНТАКСИС
- ОПИСАНИЕ
-
console eval script
- console hide
- console show
- console title ?строка?
- console hide
-
consoleinterp eval script
- consoleinterp record script
Имя
console — Управление консолью на системах без реальной консолиСинтаксис
console подкоманда ?арг ...?Описание
Окно консоли — это замена реальной консоли для ввода и вывода по стандартным каналам ввода-вывода на платформах, не имеющих реальной консоли. Она реализуется как отдельный интерпретатор с загруженным набором инструментов Tk, и управление этим интерпретатором осуществляется с помощью команды console. Поведение окна консоли определяется в основном содержимым файла console.tcl в библиотеке Tk. За исключением TkAqua, эта команда недоступна, когда Tk загружается в интерпретатор tclsh с помощью «package require Tk», так как в этом случае ожидается наличие обычного терминала. В TkAqua эта команда доступна только тогда, когда stdin равен /dev/null (как, например, в случае, когда приложение, встраивающее Tk, запускается из Finder Mac OS X).- console eval script
- Выполняет аргумент script как Tcl-скрипт в интерпретаторе консоли. К основному интерпретатору можно получить доступ через команду consoleinterp в интерпретаторе консоли.
- console hide
- Скрыть окно консоли от просмотра. Точно эквивалентно выводу из окна . в интерпретаторе консоли.
- console show
- Отобразить окно консоли. Точно эквивалентно разблокировке окна . в интерпретаторе консоли.
- console title ?строка?
- Запрос или изменение заголовка окна консоли. Если строка не указана, запрашивается заголовок окна консоли, а в противном случае заголовок окна консоли устанавливается в строку. Точно эквивалентно использованию команды wm title в интерпретаторе консоли.
Доступ к основному интерпретатору
Команда consoleinterp в интерпретаторе консоли позволяет выполнять скрипты в основном интерпретаторе. Она поддерживает две подкоманды: eval и record.- consoleinterp eval script
- Выполняет script как Tcl-скрипт на глобальном уровне в основном интерпретаторе.
- consoleinterp record script
- Записывает и выполняет script как Tcl-скрипт на глобальном уровне в основном интерпретаторе так, как будто script был введен в консоли.
Дополнительные вызовы ловушки
Есть несколько дополнительных команд в интерпретаторе консоли, которые вызываются в ответ на действия в основном интерпретаторе. Эти команды здесь документированы только для полноты; они являются частью внутренней реализации консоли и, вероятно, изменятся или будут изменены без предупреждения.Вывод в консоль из основного интерпретатора через каналы stdout и stderr обрабатывается с помощью вызова команды tk::ConsoleOutput в интерпретаторе консоли с двумя аргументами. Первый аргумент — имя канала, в который происходит запись, а второй — строка, записываемая в канал (после кодирования и обработки перевода строки).
Когда окно . основного интерпретатора уничтожается, в интерпретаторе консоли вызывается команда tk::ConsoleExit (предполагается, что сам интерпретатор консоли еще не был удален).
Нейтральные привязки
Нейтральный скрипт создает окно консоли (реализованное с помощью текстового виджета), которое имеет следующее поведение:- Нажатие клавиши Tab вставляет символ TAB (как определено Tcl-экранированием \t).
- Нажатие клавиши Enter приводит к тому, что текущая строка (если она завершена по правилам info complete) передается основному интерпретатору для выполнения.
- Нажатие клавиши Delete удаляет выделенный текст (если выделенный текст присутствует) или символ справа от курсора (если он не в конце строки).
- Нажатие клавиши Backspace удаляет выделенный текст (если выделенный текст присутствует) или символ слева от курсора (если он не в начале строки).
- Нажатие клавиш Ctrl+A или Home перемещает курсор в начало строки (но после приглашения, если в строке есть приглашение).
- Нажатие клавиш Ctrl+E или End перемещает курсор в конец строки.
- Нажатие клавиш Ctrl+P или Up выбирает предыдущую запись в истории команд.
- Нажатие клавиш Ctrl+N или Down выбирает следующую запись в истории команд.
- Нажатие клавиш Ctrl+B или Left перемещает курсор на один символ назад, если курсор не находится в позиции приглашения.
- Нажатие клавиш Ctrl+F или Right перемещает курсор на один символ вперед.
- Нажатие F9 перестраивает окно консоли, уничтожая всех его дочерних элементов и перезагружая Tcl-скрипт, определяющий поведение консоли.
Большинство других функций аналогичны обычным текстовым виджетам, за исключением того, что событие <<Вырезать>> обрабатывается так же, как и событие <<Копировать>>.
Пример
Не на всех платформах есть команда console, поэтому в отлаживаемом коде часто есть фрагмент кода со следующим фрагментом кода, чтобы вывод, произведенный с помощью puts, был виден во время разработки:catch {console show} См. также
destroy, fconfigure, history, interp, puts, text, wm
Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TkCmd/console.htm
Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TkCmd/console.htm