Есть ли способ сопоставить CTRL [ для экранирования в Powershell?

#powershell #vi #psreadline

#powershell #vi #psreadline

Вопрос:

Я обнаружил, что в powershell есть режим vi, однако, похоже, CTRL [ не сопоставлен для экранирования, как в vi и bash. Я добавил настройку в свой профиль следующим образом:

 New-Item $profile -Type File -Force
echo "Set-PSReadLineOption -EditMode vi" >> $profile
  

Я прочитал документы здесь и не нашел ничего, относящегося к моей проблеме. Текущее решение, которое я рассматриваю, — это скрипт AutoHotkey, который переназначает клавиши при наличии окна Powershell. Пожалуйста, дайте мне знать, если кто-нибудь знает более простой способ добиться этого. Я также думаю, что общесистемное изменение с помощью regedit или чего-то подобного не сработало бы, поскольку мне нужно, чтобы CTRL [ нормально функционировал вне окна powershell.

Ответ №1:

Я нашел команду, которая выполняет трюк

 Set-PSReadlineKeyHandler -Chord Ctrl [ -Function ViCommandMode
  

Редактировать: я полагаю, что могу рассказать немного больше о том, как я нашел этот ответ. Запуск этой команды

  Get-PSReadLineKeyHandler -Bound -Unbound
  

выдаст вам список всех доступных сопоставлений, как описано здесь. Я нашел escape, который был привязан к функции ViCommandMode, которую я использовал для создания решения, вставленного выше.