Console Toolkit (Инструментарий для консоли)

Console Toolkit — это дополнение для NVDA, которое улучшает доступность консоли Windows, также известной как командная строка. Оно также хорошо работает в Windows PowerShell. Некоторые функции могут работать в альтернативных терминалах, таких как Cygwin, PuTTY и Windows Terminal, однако дополнение было тщательно протестировано только со стандартной консолью Windows. Пользователи SSH могут найти это дополнение особенно полезным.

Некоторые функции ранее были частью дополнения Tony's enhancements.

Загрузка

Установите из магазина дополнений.

Переход к первой видимой строке

Console Toolkit переназначает команду shift+numpad7 в консолях с UIA: вместо чтения первой строки во всем буфере теперь читается первая видимая строка в верхней части окна. Дважды нажмите shift+numpad7, чтобы вернуться к старому поведению и прочитать первую строку буфера.

Речевой вывод в реальном времени

Эта опция заставляет NVDA произносить новые строки сразу же, как только они появляются в выводе консоли, вместо постановки новых речевых команд в очередь. Например, если NVDA занята озвучиванием строки, появившейся на экране минуту назад, и появляется новая строка, эта опция отменит озвучивание старой строки и сразу же начнет произносить новую, обеспечивая таким образом более оперативную обратную связь о происходящем в окне консоли.

Звуковой сигнал при обновлении консоли

Воспроизводит низкотональный звуковой импульс при каждом обновлении текста в консоли.

Принудительное использование Control+V в консолях

Эта опция заставляет сочетание клавиш Control+V работать внутри ssh-сессий.

Экспериментально: редактирование командной строки

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

Нажмите NVDA+E, чтобы идентифицировать текущее приглашение в окне консоли и отредактировать его в доступном окне «Редактирование приглашения». После редактирования вы можете нажать Escape, чтобы обновить текущую командную строку, или Enter, чтобы обновить и немедленно выполнить команду. Кроме того, вы можете нажать Alt+F4, чтобы закрыть окно редактирования приглашения без обновления командной строки.

Эта функция была протестирована в командной строке Windows cmd.exe, а также в оболочке bash через SSH-соединения, а также в WSL и Cygwin. Она также может работать в альтернативных оболочках Unix, но это не проверялось.

Вот как дополнение извлекает текущую команду:

  1. Оно нажимает клавишу End, а затем отправляет управляющий символ, который является редким символом Юникода, вряд ли используемым где-либо еще.
  2. Затем оно нажимает клавишу Home и отправляет другой управляющий символ.
  3. Затем оно ожидает появления управляющих символов на экране, что может занять некоторое время на медленных SSH-соединениях.
  4. Команда — это то, что находится между двумя управляющими символами.
  5. Когда в настройках NVDA включена опция «Использовать модель автоматизации пользовательского интерфейса (UIA) для доступа к консоли Windows, если доступно», в начало строки отправляется еще один управляющий символ. Это необходимо для правильного разбора многострочных команд: реализация UIA обрезает пробелы в конце каждой строки, поэтому, чтобы определить, есть ли пробел между двумя строками, нам нужно сдвинуть их на один символ. Обратите внимание, однако, что при этом мы не сохраняем количество пробелов между словами, мы гарантируем только сохранение наличия пробелов.
  6. Перед редактированием дополнение удаляет управляющие символы, помещая курсор в начало и конец и имитируя нажатия клавиш Delete и Backspace.
  7. Оно отображает команду в окне «Редактирование приглашения» для просмотра или редактирования пользователем.
  8. После того как пользователь нажмет Enter или Escape, оно сначала стирает текущую строку в консоли. Это достигается одним из четырех методов, выбор которого можно настроить. В настоящее время поддерживаются четыре метода:
  9. Затем дополнение имитирует нажатия клавиш для ввода обновленной команды и опционально имитирует нажатие клавиши Enter.

Устранение неполадок:

Экспериментально: захват вывода команды

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

Находясь в командной строке или в окне «Редактирование приглашения», нажмите Control+Enter, чтобы захватить вывод команды. Это дополнение способно захватывать большой вывод, который занимает несколько экранов, хотя, когда вывод больше 10 экранов, процесс захвата занимает значительное время для завершения. Дополнение будет воспроизводить длинный звуковой сигнал, который будет длиться до тех пор, пока дополнение захватывает вывод выполняющейся команды, или до истечения времени ожидания. Кроме того, вы можете нажать NVDA+E, чтобы прервать захват.

Когда в настройках NVDA включена функция «Использовать модель автоматизации пользовательского интерфейса (UIA) для доступа к консоли Windows, если доступно», вы можете переключаться на другие окна во время захвата. Однако, если эта опция отключена, то NVDA использует устаревший код консоли, который работает только тогда, когда консоль находится в фокусе, и поэтому переключение на любое другое окно приостановит захват.

Захват команды работает путем перенаправления вывода команды в программу less. Суффикс, добавляемый к командам по умолчанию:

Перевод