
¿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 vimrc
archivo 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.