Устранение неполадок в Терминале Windows

В этом руководстве рассматриваются некоторые распространенные ошибки и препятствия, которые могут возникнуть при использовании Терминала Windows.

При открытии параметров ничего не происходит (или открывается непредусмотренное приложение)

Если нажать кнопку "Параметры" в раскрывающемся списке, терминал попытается открыть файл параметров settings.json. После этого операционная система пытается запустить настроенный редактор файлов .json. Это может быть Visual Studio, Блокнот или другое полностью непредусмотренное приложение. Если на компьютере не настроен редактор .json, в ОС в конечном итоге отобразится диалоговое окно "Каким образом вы хотите открыть этот файл?".

Совет

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

Настройка дистрибутива WSL для запуска в домашнем каталоге ~ при запуске в более ранних версиях Терминала Windows

По умолчанию startingDirectory профиля является %USERPROFILE% (C:\Users\<YourUsername>). Это путь в Windows. Для дистрибутивов WSL работающих с новой версией Терминала Windows, файловые системы могут вводить ~, чтобы задать этот путь к домашнему каталогу. В более ранних версиях Терминала Windows для прямого обращения к домашнему каталогу можно использовать /home/<Your Ubuntu Username>. Например, следующий параметр запустит дистрибутив Ubuntu-20.04 по пути к файлу в домашней папке:

{
    "name": "Ubuntu-20.04",
    "commandline" : "wsl -d Ubuntu-20.04",
    "startingDirectory" : "/home/<Your Ubuntu Username>"
}

Если вы используете очень раннюю версию Терминала Windows, WSL может потребовать использования префикса \\wsl$\ при обращении к пути к домашней папке дистрибутива для параметра startingDirectory. Например, следующий параметр запустит дистрибутив Ubuntu-18.04 в пути к основной папке:

{
    "name": "Ubuntu-18.04",
    "commandline" : "wsl -d Ubuntu-18.04",
    "startingDirectory" : "//wsl$/Ubuntu-18.04/home/<Your Ubuntu Username>"
}

Важно!

В более новых версиях Windows startingDirectory может принимать пути в стиле Linux.

Задание заголовка вкладки

Сведения о настройке автоматического задания заголовка вкладки оболочкой см. в этом руководстве. Если вы хотите задать собственный заголовок вкладки, откройте файл settings.json и выполните следующие действия:

  1. В профиле для выбранной командной строки добавьте "suppressApplicationTitle": true, чтобы подавлять события изменения заголовка, отправляемые из оболочки. При добавлении только этого параметра в профиль для заголовка вкладки задается имя вашего профиля.

  2. Если вам необходим пользовательский заголовок вкладки, который не является именем профиля, добавьте "tabTitle": "TITLE". Замените TITLE необходимым заголовком вкладки.

Аргументы командной строки в PowerShell

Сведения о функционировании аргументов командной строки в PowerShell см. на этой странице.

Аргументы командной строки в WSL

Сведения о функционировании аргументов командной строки в WSL см. на этой странице.

Проблема при настройке startingDirectory

Если startingDirectory игнорируется в профиле, сначала убедитесь в правильности синтаксиса в файле settings.json. Для выполнения проверки синтаксиса автоматически внедряется схема "$schema": "https://aka.ms/terminal-profiles-schema". Некоторые приложения, например Visual Studio Code, могут использовать эту схему для проверки JSON-файла при внесении изменений.

Если параметры верны, возможно, выполняется сценарий запуска, который задает начальный каталог терминала отдельно. Например, PowerShell имеет собственную отдельную концепцию профилей. Изменение в ней начального каталога приоритетнее определения параметра в Терминале Windows.

Кроме того, при запуске сценария с помощью параметра профиля commandline вы могли задать в нем расположение. Как и в случае с профилями PowerShell, эти команды приоритетнее параметра профиля startingDirectory.

Целью startingDirectory является запуск нового экземпляра Терминала Windows в заданном каталоге. Если терминал выполняет любой код, который изменяет каталог, необходимо внимательно изучить этот код.

CTRL+= не увеличивает размер шрифта

Если вы используете раскладку клавиатуры на немецком языке, то можете столкнуться с этой проблемой. Ctrl+= получает десериализацию как CTRL+SHIFT+0 , если для основной раскладки клавиатуры задан немецкий. Это правильное сопоставление для немецкой раскладки клавиатуры.

Более важно, что приложение никогда не получает нажатие клавиш CTRL+SHIFT+0 . Это связано с тем, что ctrl+SHIFT+0 зарезервировано Windows, если у вас есть несколько активных раскладок клавиатуры.

Если вы хотите отключить эту функцию для правильного функционирования Ctrl+=, следуйте инструкциям в разделе "Изменение сочетаний клавиш для переключения раскладки клавиатуры в Windows 10" в этой записи блога.

Измените параметр "Переключить раскладку клавиатуры" на "Не назначено" (или отключено ctrl+SHIFT), а затем нажмите кнопку "ОК ", а затем "Применить". Ctrl+SHIFT+0 теперь должен работать как привязка ключа и передается в терминал.

С другой стороны, если вы используете эту возможность сочетания клавиш для нескольких языков ввода, вы можете настроить пользовательское сочетание клавиш в файле settings.json.

Текст размыт

Некоторые драйверы экрана и аппаратные конфигурации не могут обрабатывать прокрутку и/или "грязные" области без размытия данных предыдущего кадра. Чтобы устранить эту проблему, добавьте набор этих глобальных параметров отрисовки, чтобы снизить нагрузку на оборудование, вызванную отрисовщиком текста терминала.

Цвета выглядят не так, как ожидалось. На экране отображаются черные полосы.

Важно!

Это касается только Терминала Windows 1.2 и более поздних версий. Если проблемы с цветами возникают в Терминале Windows 1.0 или 1.1 или наблюдаются проблемы, которые здесь не описаны, сообщите об ошибке.

В Терминале Windows 1.2 и более поздних версий улучшено распознавание определенных параметров цветов приложения. Благодаря этим улучшениям в распознавании мы смогли удалить ряд блоков совместимости, которые приводили к ухудшению работы пользователей. К сожалению, есть небольшое количество приложений, в которых могут возникнуть проблемы.

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

Черные линии в PowerShell (5.1, 6.x, 7.0)

Если Терминал используется в сочетании с библиотекой редактирования строк PowerShell PSReadline, на экране могут отображаться черные линии. Эти области непредусмотренного цвета будут распространяться по экрану при наличии в запросе параметров команд, строк или операторов.

Выпущена версия PSReadline 2.0.3 с исправлением для этой проблемы. Если вы используете версию предварительного выпуска PSReadline, обратите внимание, что исправление еще не доступно.

Для обновления до последней версии PSReadline выполните следующую команду:

Update-Module PSReadline

Почему мои эмодзи не отображаются как значки в списке переходов?

Как значки профиля в списке переходов можно визуализировать только изображения из расположения файла. Эмодзи не поддерживаются как значки списка переходов.

Технические заметки

Приложения, которые используют семейство API-интерфейсов GetConsoleScreenBufferInfo для получения активных цветов консоли в формате Win32, а затем пытаются преобразовать их в кросс-платформенные последовательности VT (например, преобразование BACKGROUND_RED в \x1b[41m), могут повлиять на способность Терминала определить, какой фоновый цвет пытается использовать приложение.

Для настройки цветов разработчикам приложений рекомендуется выбирать функции API Windows или последовательности VT. Сочетать эти подходы нежелательно.

Предупреждение службы клавиатуры

Начиная с Терминала Windows 1.5, в окне Терминала отображается предупреждение, если отключен параметр "Служба сенсорной клавиатуры и панели рукописного ввода". Эта служба необходима операционной системе для правильного направления входных событий в приложение Терминала (а также многие другие приложения в Windows). Если отображается это предупреждение, выполните следующие действия, чтобы снова включить службу:

  1. В диалоговом окне выполнения выполните services.msc.

    services.msc in the run dialog

  2. Найдите запись "Служба сенсорной клавиатуры и панели рукописного ввода".

    Touch Keyboard and Handwriting Panel Service in Services.msc

  3. Откройте раздел "Свойства" для этой службы.

    service properties

  4. Измените значение параметра "Тип запуска" на "Автоматический".

    service startup type

  5. Нажмите кнопку "ОК" и перезагрузите компьютер.

После перезагрузки компьютера служба должна запуститься в автоматическом режиме и диалоговое окно больше не должно отображаться.

Почему при использовании командной строки Git Bash наблюдается мерцание или мигание?

При использовании командной строки Git Bash в Терминале Windows можно заметить мерцание или мигание. Такое поведение предусмотрено. Терминал выполняет указания Git Bash (при этом настраивается отображение стиля сигнала, из-за чего происходит мерцание в соответствии с ответом на сигнал), но мы понимаем, что такое поведение может отвлекать вас от работы. Чтобы устранить эту проблему, откройте файл .inputrc для Git Bash в текстовом редакторе. Скорее всего, этот файл будет расположен по пути C:\Program Files\Git\etc. Чтобы открыть его в текстовом редакторе Nano, выполните команду nano ~/.inputrc.

Измените значение по умолчанию:

# none, visible or audible
set bell-style visible

Установите для стиля сигнала в значение none или audible, чтобы устранить видимое мерцание:

set bell-style none

Нажмите клавиши CTRL+O и CTRL+X, чтобы сохранить изменения и выполнить выход.

Как сбросить параметры в Терминале Windows до значений по умолчанию?

Чтобы сбросить параметры до исходных значений по умолчанию, удалите файл settings.json. После этого Терминал Windows повторно создаст файл settings.json с исходными параметрами по умолчанию.

Важно!

В Терминале Windows 1.10 или более поздней версии также удалите файл state.json в том же каталоге, где находится файл settings.json, чтобы полностью сбросить параметры до значений по умолчанию.

Почему прозрачность акрила не делает фон Терминала Windows прозрачным?

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

  • В качестве правила на уровне системы эффект акрила включается только для окна переднего плана. Таким образом, если вы активируете любое другое окно, эффект акрила для окна Терминала будет отключен.
  • Эффект акрила не работает, если его не поддерживает графический процессор. Если вы запускаете приложение на виртуальной машине или на удаленном рабочем столе, эффект акрила, скорее всего, не будет работать.
  • Эффект акрила может быть отключен операционной системой по ряду причин, например в режиме экономии питания (при низком заряде батареи) или при доступе к компьютеру с помощью удаленного рабочего стола.

Почему указатель мыши исчезает при наведении на окно и вводе текста?

Это поведение автоматического скрытия курсора по умолчанию, но его можно отключить. Найдите в параметрах Windows "Параметры мыши" > "Дополнительные параметры мыши" > "Свойства мыши" > "Параметры указателя" > и снимите флажок "Скрывать указатель во время ввода с клавиатуры". Чтобы это изменение вступило в силу, может потребоваться перезапуск Терминала Windows.