К обсуждениям

TUI в терминале VS Code перехватило мышь: как вернуть выделение

Редакция VOne Технологии

Почему 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 использован только как обезличенный сигнал.

Источники и проверка

Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

Ответ появится сразу. Не публикуйте личные данные, ключи и приватные ссылки.