Combinaciones de teclas de Windows Powershell Vim

Combinaciones de teclas de Windows Powershell Vim

¿Hay alguna manera de obtener combinaciones de teclas vim en powershell como lo haría en bash o zsh con un comando como

set -o vi

Respuesta1

Estos días tienes un par de opciones. Con la consola predeterminada, puedes ejecutar Vim en Windows (es posible que ya lo tengas si tienes 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 el modo Vi en este momento esPSReadLineahora disponible en elGalería de PS

Haynotas de usopero 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 instalada manualmente).

Respuesta2

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 se proporciona Windows 10 para este método. Si no tiene OneGet o no está seguro, puede seguir las instrucciones enPSReadline

Para instalar PSReadline sin elevar privilegios

Install-Module PsReadline -Scope CurrentUser

Comprueba que tienes un perfil de PowerShell

Test-Path $PROFILE

Si no creas uno

New-Item -Type File $PROFILE

Abrir $PROFILE en ISE

ise $PROFILE

Añade esta línea

Set-PSReadlineOption -EditMode vi

Vuelva a cargar $PROFILE o simplemente reinicie PowerShell

& $PROFILE

Respuesta3

No juraría que no existe una característica no documentada de Powershell que permita esto, pero hasta donde yo sé, la respuesta es no. Al menos nunca he visto nada en la documentación de Powershell que sugiera que sea posible.

J.R.

Respuesta4

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 emacs emergente, aunque está en su infancia. Agregar un modo vi en PSReadln sería lo más obvio, pero no tengo tiempo para dedicarle.

información relacionada