Ссылки на клавиши Windows Powershell Vim


17

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

set -o vi

опубликовал возможный ответ здесь: stackoverflow.com/questions/28067589/powershell-ise-vim/... (Powershell ISE + ВИМ), но больше обходной путь
Eli

Ответы:


11

В эти дни у вас есть несколько вариантов. С консолью по умолчанию вы можете просто запустить 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 для обновления версии доставки (также установленной вручную).


1
Поддержка режима vi была добавлена ​​через PsReadline в PowerShell 5. См. Ответ @strings ниже ...
Лукас,

Есть ли способ изменить курсор, чтобы вы могли видеть, находитесь ли вы в нормальном режиме или в режиме вставки?
Bradgonesurfing

Я так не думаю, однако другая бета-версия для версии 2 вышла на прошлой неделе. Так что вы можете попробовать это, и если его там нет, я бы попросил сопровождающих, чтобы он мотивировал их поддержать его (и продолжить разработку в целом)
Lex

9

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

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

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

Install-Module PsReadline -Scope CurrentUser

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

Test-Path $PROFILE

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

New-File -Type File $PROFILE

Откройте $ ПРОФИЛЬ в ISE

ise $PROFILE

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

Set-PSReadlineOption -EditMode vi

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

& $PROFILE

1
Это файл нового типа
Алекс

1

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

JR


0

Как это происходит, вы можете загрузить подсветку синтаксиса PowerShell в VIM. Это то, что я использую для разработки сценариев.

http://www.vim.org/scripts/script.php?script_id=1327

Хотя он не находится в самой оболочке, он удобен для создания более длинных сценариев. У меня есть одно окно в VIM и приглашение PowerShell в другом. Я нахожу это очень удобным .


0

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.