Вопрос или проблема
Очень часто я уже держу руку на мыши и просто нужно быстро сделать выбор или переместить курсор с помощью мыши.
Чтобы выполнять стандартные действия, такие как установка курсора на определенное слово и выделение одного или нескольких слов. Ничего не отличается от VSCode, как показано в этом примере ЗДЕСЬ
Для ясности, я не говорю о выборе строк, которые были выведены предыдущей командой, а о команде, которая в данный момент вводится, например, в PowerShell.
Я много искал и не смог прийти к выводу. Некоторые источники говорят, что такая функция доступна только в терминале WSL Windows, в то время как другие утверждают, что она доступна везде в терминале Windows, но ее нужно сначала включить.
Я совсем не использую WSL, только PowerShell.
Существует ли способ сделать это в стандартном терминале Windows или, по крайней мере, для PowerShell и CMD?
Цитируя zadjii-msft на GitHub терминала Microsoft:
Нет, это не то, что будет работать без сотрудничества приложения командной строки, которое запускается в терминале. Например,
bash
илиcmd.exe
. Эти приложения действительно отвечают за отрисовку подсказки и строки ввода. Их нужно будет изменить, чтобы поддерживать клик для установки позиции курсора. Не уверен, что знаю какое-либо приложение оболочки, которое это действительно поддерживает, если честно. Вы можете подтвердить это, попытавшись запустить эквивалентную команду в окне устаревшей консоли – обратите внимание, что мышь там тоже не работает таким образом в оболочках.
vim
является классическим примером приложения, осведомленного о мыши.
Короче говоря, нет. Хотя программа терминала и считывает ввод с мыши, PowerShell и CMD сами по себе этого не делают. И в случае PowerShell эта функция официально не запланирована
Дополняя исчерпывающий ответ Капитана Уэйла, VSCode теперь поддерживает перемещение курсора в нескольких своих интегрированных терминалах! Кроме PowerShell, я протестировал все свои IDE VSCode и могу подтвердить, что это также работает на:
- Git Bash
- Командной строке
- Ubuntu (WSL)
- Отладке JavaScript
На сегодняшний день это стало возможным. Чтобы сделать это, обновите до последней версии Windows Terminal v1.21.2361.0, затем просто включите experimental.repositionCursorWithMouse
, перейдя в настройки и переведя переключатель на «включено» для следующего:
После этого просто следуйте руководству здесь, чтобы включить интеграцию оболочки для каждой из ваших оболочек (PowerShell/CMD/git-bash и др.), и вы сможете перемещать курсор щелчком мыши, как показано ниже:
Ответ или решение
Поддержка ввода с мыши в терминале Windows: Общая информация
Терминалы, такие как PowerShell и CMD, традиционно не поддерживают использование мыши для перемещения курсора и выделения текста в процессе ввода комманд. Это связано с тем, что именно эти приложения отвечают за отрисовку приглашений и строк ввода, и они не имеют встроенной функциональности для работы с мышью аналогично тому, как это реализовано в современных IDE, таких как Visual Studio Code (VSCode).
Ввод с мыши в терминале Windows
С точки зрения функциональности, терминал Windows действительно регистрирует ввод с мыши, но для полноценного взаимодействия требуется сотрудничество со стороны самих приложений командной строки. Обычные консоли, такие как CMD и PowerShell, не поддерживают указание позиции курсора по щелчку мыши. Об этом упоминает сотрудник Microsoft в комментарии к GitHub-репозиторию терминала, где он объясняет, что необходимо наличие модификации в приложениях, чтобы это стало возможным. Пример программы, поддерживающей ввод мыши, – это текстовый редактор Vim.
Обновления в Windows Terminal
С выходом версии 1.21.2361.0 терминала Windows были внесены изменения, позволяющие использовать курсор мыши для его перемещения. Для активации этой функции пользователям необходимо настроить параметр experimental.repositionCursorWithMouse
через меню настроек терминала:
- Откройте настройки терминала Windows.
- Найдите параметр
experimental.repositionCursorWithMouse
. - Включите его для активации функции.
После настройки требуется интеграция с оболочками (например, PowerShell, CMD, Git Bash и т.д.) для полноценного использования функции.
Поддержка в других средах разработки
Хотя стандартные консоли Windows не поддерживают ввод мыши для изменения позиции курсора, некоторые инструменты с встроенными терминалами это делают. Например:
- VS Code: Поддерживает изменение позиции курсора с помощью комбинации Alt + Click в терминале PowerShell и других интегрированных терминалах.
- Windows PowerShell ISE: Позволяет выполнять щелчки мышью для выбора текста и перемещения курсора, хотя данное приложение больше не обновляется.
Заключение
Если вы работаете в средах, где необходима поддержка мышиного ввода, рекомендуется использовать терминал Windows версии 1.21.2361.0 и активировать соответствующий параметр. Для более сложных взаимодействий и управления можно рассмотреть использование IDE, как VS Code, где ввод с мышью является стандартной и встроенной функциональностью.