Почему drag в интегрированном терминале VS Code после запуска TUI идёт приложению, как принудительно выделить текст и проверить выход из mouse events mode.
Определите, куда идёт drag
Откройте новый терминал и выделите безопасную строку до запуска TUI. Затем запустите то же приложение, которое включает mouse events, и повторите drag. Если вместо синей области меняется курсор или выбор внутри TUI, события получает приложение. Такое поведение совпадает с официальным описанием mouse events mode и не указывает само по себе на поломку мыши.
Проверьте штатный модификатор
Не выходя из той же TUI-сессии, зажмите Alt на Windows или Linux и сделайте drag по той же строке. На macOS официальная справка указывает Option, если включена соответствующая настройка. Если текст выделился только с модификатором, clipboard и рендеринг не были первой границей: различалось именно то, кому терминал отдал события мыши.
Выйдите из TUI как из контрольной точки
Завершите TUI его собственной командой выхода, а не закрытием всего VS Code. После возврата к prompt повторите drag без модификатора. Если обычное выделение вернулось, получена полная цепочка «до — во время — после». Если не вернулось, не называйте причиной mouse mode: нужно отдельно зафиксировать, что приложение не вернуло терминал в ожидаемый режим.
Что показывают протоколы xterm
xterm.js публикует таблицу поддерживаемых mouse modes и протоколов кодирования и указывает, что одновременно активен один tracking mode и один протокол. Это объясняет, почему поведение может резко меняться после escape sequence, но не даёт оснований угадывать конкретную последовательность. Пользователю достаточно знать наблюдаемую границу: куда попал drag и когда он вернулся терминалу.
Передайте симптом без истории терминала
В отчёте укажите версию VS Code, ОС, название и версию TUI, три результата и значение модификатора. Не прикладывайте полную scrollback-историю: в ней могут быть пути, токены и вывод рабочих команд. Не устанавливайте сторонние перехватчики мыши и не подменяйте профиль shell. Если штатный модификатор работает, есть безопасный временный маршрут до ответа разработчиков.
Разделите выделение и копирование
После успешного Alt- или Option-drag скопируйте только заранее подготовленную нейтральную строку и вставьте её в пустой локальный редактор. Если выделение видно, но буфер не получил строку, маршрутизация mouse events уже не единственная граница. Если выделение не появилось, не исследуйте clipboard в этом прогоне. Так два сбоя не будут смешаны в одну неясную формулировку «не работает мышь».
Материал подготовлен редакцией VOne с применением ИИ для контрольной цепочки; поведение mouse mode проверено по документации VS Code и xterm.js, issue использован только как обезличенный сигнал.
Источники и проверка
- Visual Studio Code — Terminal mouse events mode проверено 2026-08-11
- xterm.js — Supported Terminal Sequences проверено 2026-08-11
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.