Сочетания клавиш Windows Powershell Vim

Сочетания клавиш Windows Powershell Vim

Есть ли способ получить сочетания клавиш vim в PowerShell, как в bash или zsh, с помощью команды вроде

set -o vi

решение1

В наши дни у вас есть несколько вариантов. С консолью по умолчанию вы можете просто запустить Vim в Windows (она у вас уже может быть, если у вас установлены git или другие инструменты). Чтобы сделать интеграцию более гладкой, поместите это в свой профиль PowerShell:

$VIMEXEPATH    = "c:\<location>\vim.exe"

Set-Alias vim  $VIMEXEPATH
Set-Alias vi   $VIMEXEPATH

Я также рекомендую добавить в ваш файл следующее vimrc, чтобы он сам выполнял команды оболочки с помощью PowerShell.

set shell=powershell
set shellcmdflag=-command

В противном случае единственный ISE, который сейчас поддерживает режим Vi, этоPSReadLineтеперь доступно наPS Галерея

Естьпримечания по использованиюно вкратце для режима VI вам необходимо добавить следующую строку в ваш профиль ISE.

Set-PSReadlineOption -EditMode vi

Обратите внимание, что поддержка Vi была добавлена ​​в версии 1.2, но версия 1.1 поставлялась с Windows 10. Для обновления поставляемой (т. е. установленной вручную) версии вам потребуется использовать параметр -force.

решение2

Модуль PSReadline обеспечивает это.

Установка проста, не уверен, каковы требования, но я думаю, что для этого метода предусмотрена как минимум Windows 10. Если у вас нет OneGet или вы не уверены, вы можете следовать инструкциям наPSReadline

Чтобы установить PSReadline без повышения привилегий

Install-Module PsReadline -Scope CurrentUser

Проверьте, есть ли у вас профиль PowerShell

Test-Path $PROFILE

Если вы его не создадите

New-Item -Type File $PROFILE

Открыть $PROFILE в ISE

ise $PROFILE

Добавьте эту строку

Set-PSReadlineOption -EditMode vi

Перезагрузите $PROFILE или просто перезапустите PowerShell.

& $PROFILE

решение3

Я бы не поклялся, что нет недокументированной функции Powershell, которая позволяет это, но насколько я знаю, ответ — нет. По крайней мере, я никогда не видел ничего в документации Powershell, что указывало бы на такую ​​возможность.

Дж.Р.

решение4

Движок PowerShell теперь предлагает возможности, позволяющие сделать это относительно просто, но я не знаю никого, кто бы это уже сделал.

Проект PSReadln имеет эмерджентный режим emacs, хотя он находится в зачаточном состоянии. Добавление режима vi в PSReadln было бы очевидным решением, но у меня нет времени уделять этому.

Связанный контент