Я специально хочу изменить, какой текст выделяется, когда я нажимаю Ctrl + Shift + (ARROW_FORWARD | ARROW_BACKWARD).

Вот несколько примеров текущего поведения.

Поэтому здесь я бы предпочел остановку курсора в конце первого слова, а не перед началом следующего:

Введите описание изображения здесь

И здесь я бы предпочел остановить его сразу после "а", но, похоже, PowerShell игнорирует специальные символы.

Введите описание изображения здесь

1 ответ1

1

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

Проверьте Get-PSReadlineKeyHandler | Where-Object Key -eq "Ctrl+Shift+RightArrow" . Это покажет вам функцию, вызванную этой комбинацией клавиш, которая является SelectNextWord . Эта функция работает аналогично NextWord , полагаясь на WordDelimiters установленные Set-PSReadLineOption .

Очистка разделителей даст вам те же результаты в вашем первом примере и выберет только «$ a» (конечный пробел) во втором примере. Установите это с помощью Set-PSReadlineOption -WordDelimiters "" .

Чтобы вернуться к исходным разделителям, перезапустите сеанс PowerShell или восстановите значения по умолчанию, указанные в Get-Help для командлета (;:,.[]{}()/\|^&*-=+---),

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .