Vinculación de teclas de Windows Powershell Vim

Respuestas:

11

En estos días tienes un par de opciones. Con la consola predeterminada, solo puede ejecutar Vim en Windows (es posible que ya lo tenga si tiene instalado git u otras herramientas). Para que la integración sea más fluida, coloque esto en su perfil de PowerShell:

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

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

También recomendaría agregar lo siguiente a su vimrcarchivo para que ejecute comandos de shell con PowerShell.

set shell=powershell
set shellcmdflag=-command

De lo contrario, el único ISE que admite un modo Vi en este momento es PSReadLine ahora disponible en la Galería PS

Hay notas de uso, pero en resumen para el modo VI, debe agregar la siguiente línea a su perfil ISE.

Set-PSReadlineOption -EditMode vi

Tenga en cuenta que la compatibilidad con Vi se agregó en 1.2 pero 1.1 se envió con Windows 10. Deberá usar el parámetro -force para actualizar la versión de envío (también conocida como instalación manual).

Lex
fuente
1
Se agregó soporte para el modo vi a través de PsReadline en PowerShell 5. Ver la respuesta de @strings a continuación ...
Lucas
¿Hay alguna manera de cambiar el cursor para que pueda ver si está en modo normal o de inserción?
bradgonesurfing
No lo creo, sin embargo, otra versión beta para la versión 2 lanzada la otra semana. Así que podría intentarlo, y si no está allí, trataría de preguntar a los encargados del mantenimiento que podría motivarlos a apoyarlo (y continuar el desarrollo en general)
Lex
9

El módulo PSReadline proporciona esto.

La instalación es simple, no estoy seguro de cuáles son los requisitos, pero creo que al menos Windows 10 para este método proporcionado. Si no tiene OneGet o no está seguro, puede seguir las instrucciones en PSReadline

Para instalar PSReadline sin elevar los privilegios

Install-Module PsReadline -Scope CurrentUser

Comprueba que tienes un perfil de PowerShell

Test-Path $PROFILE

Si no creas uno

New-File -Type File $PROFILE

Abrir $ PROFILE en ISE

ise $PROFILE

Agrega esta línea

Set-PSReadlineOption -EditMode vi

Recargue $ PROFILE o simplemente reinicie powershell

& $PROFILE
instrumentos de cuerda
fuente
1
Es un archivo de tipo de elemento nuevo
Alex
1

No juraría que no hay una característica indocumentada de Powershell que permita esto, pero que yo sepa, la respuesta es no. Al menos nunca he visto nada en la documentación de Powershell que sugiera que sea posible.

JR

John Rennie
fuente
0

El motor powershell ahora ofrece los ganchos para hacer esto relativamente sencillo, pero no conozco a nadie que lo haya hecho todavía.

El proyecto PSReadln tiene un modo emergente de emacs, aunque está en pañales. Agregar un modo vi en PSReadln sería lo más obvio, pero no tengo tiempo para dedicarlo.

usuario253235
fuente