Назад | Перейти на главную страницу

Привязки клавиш Windows Powershell Vim

Есть ли способ получить привязки клавиш 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 было бы очевидным занятием, но у меня нет времени на это.