Vinculações de teclas do Windows Powershell Vim


Respostas:


11

Hoje em dia você tem algumas opções. Com o console padrão, você pode simplesmente executar o Vim no Windows (talvez você já o tenha, se tiver o git ou outras ferramentas instaladas). Para tornar a integração mais perfeita, coloque isso no seu perfil do PowerShell:

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

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

Também recomendo adicionar o seguinte ao seu vimrcarquivo para que ele execute comandos do shell com o próprio PowerShell.

set shell=powershell
set shellcmdflag=-command

Caso contrário, o único ISE que suporta um modo Vi agora é o PSReadLine agora disponível na Galeria PS

notas de uso, mas resumidamente para o modo VI, você precisa adicionar a seguinte linha ao seu perfil ISE.

Set-PSReadlineOption -EditMode vi

Observe que o suporte ao Vi foi adicionado no 1.2, mas no 1.1, fornecido com o Windows 10. Você precisará usar o parâmetro -force para atualizar a versão de remessa (também instalada manualmente).


1
O suporte ao modo vi foi adicionado via PsReadline no PowerShell 5. Consulte a resposta @strings abaixo ...
Lucas

Existe uma maneira de mudar o cursor para que você possa ver se está no modo normal ou de inserção?
Bradgonesurfing

Acho que não, no entanto, outro beta para a versão 2 foi lançado na outra semana. Então você pode tentar isso, e se ele não estiver lá eu tentar pedir os mantenedores que poderia motivá-los a apoiá-lo (e continuar o desenvolvimento em geral)
Lex

9

O módulo PSReadline fornece isso.

Para instalar é simples, não tenho certeza quais são os requisitos, mas acho que pelo menos o Windows 10 para este método fornecido. Se você não possui o OneGet ou não tem certeza de que pode seguir as instruções em PSReadline

Para instalar o PSReadline sem elevar privilégios

Install-Module PsReadline -Scope CurrentUser

Verifique se você tem um perfil PowerShell

Test-Path $PROFILE

Se você não criar um

New-File -Type File $PROFILE

Abra o $ PROFILE no ISE

ise $PROFILE

Adicione esta linha

Set-PSReadlineOption -EditMode vi

Recarregue $ PROFILE ou apenas reinicie o PowerShell

& $PROFILE

1
É um arquivo de tipo de novo item
Alex

1

Eu não juraria que não há um recurso não documentado do Powershell que permita isso, mas, tanto quanto sei, a resposta é não. Pelo menos nunca vi nada na documentação do Powershell sugerindo que isso é possível.

JR



0

O mecanismo do PowerShell agora oferece os ganchos para tornar isso relativamente simples, mas eu não conheço ninguém que tenha feito isso ainda.

O projeto PSReadln tem um modo emacs emergente, embora esteja em sua infância. Adicionar um modo vi no PSReadln seria a coisa mais óbvia, mas não tenho tempo para dedicar a ele.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.