Есть ли способ получить привязки клавиш vim в powershell, как в bash или zsh, с помощью такой команды, как
set -o vi
В наши дни у вас есть несколько вариантов. С консолью по умолчанию вы можете просто запустить 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 для обновления доставки (также известной вручную) версии.
Модуль PSReadline обеспечивает это.
Установить просто, не знаю, каковы требования, но я думаю, что по крайней мере Windows 10 для этого метода предусмотрена. Если у вас нет OneGet или вы не уверены, что можете следовать инструкциям на странице PSЧитать
Чтобы установить PSReadline без повышения привилегий
Install-Module PsReadline -Scope CurrentUser
Убедитесь, что у вас есть профиль PowerShell
Test-Path $PROFILE
Если вы его не создадите
New-File -Type File $PROFILE
Открыть $ PROFILE в ISE
ise $PROFILE
Добавить эту строку
Set-PSReadlineOption -EditMode vi
Перезагрузите $ PROFILE или просто перезапустите powershell
& $PROFILE
Я бы не стал ругаться, что в Powershell нет недокументированной функции, которая позволяет это, но, насколько я знаю, ответ отрицательный. По крайней мере, я никогда не видел ничего в документации Powershell, чтобы предположить, что это возможно.
JR
Как это бывает, вы можете загрузить подсветку синтаксиса PowerShell в VIM. Это то, что я использую для разработки сценариев.
http://www.vim.org/scripts/script.php?script_id=1327
Хотя его нет в самой оболочке, он удобен для создания более длинных скриптов. У меня есть одно окно в VIM, а в другом - приглашение PowerShell. Я нахожу это очень удобным.
Движок powershell теперь предлагает хуки, чтобы сделать это относительно простым, но я не знаю никого, кто бы это делал.
В проекте PSReadln есть режим Emergant Emacs, хотя он находится в зачаточном состоянии. Добавление режима vi в PSReadln было бы очевидным занятием, но у меня нет времени на это.