¿Es posible hacer que el autocompletado en Powershell funcione como en bash?

¿Es posible hacer que el autocompletado en Powershell funcione como en bash?

Me encanta Powershell, pero como tengo experiencia en Linux, hay algunas cosas que realmente me molestan. Como, por ejemplo, cómo funciona la finalización automática predeterminada.

Por ejemplo: Get-PS se expande a "Get-PSBreakpoint", que es el primer comando coincidente. En bash, si solo hay un comando que coincida, bash se expandirá al comando coincidente. Si hay varias pestañas que presionan una vez no hace nada, al tocar dos veces la pestaña se mostrará una lista de comandos coincidentes, pero no se expandirá. ¿Hay alguna manera de hacer que Powershell se comporte así?

Y otra cosa, si escribí una línea y muevo el marcador a un comando anterior (el marcador es donde está ^):

"Get-PSS^ | Remove-PSSession" se completa automáticamente en "Get-PSSession^", eliminando todos los comandos finales. En bash, los comandos finales seguirán ahí sin verse afectados. ¿Hay alguna manera de hacer que Powershell no elimine los comandos finales al completar automáticamente?

Una ventaja sería obtener CTRL+L para borrar la pantalla. CTRL+A para ir al principio de la línea y CTRL+E para ir al final de la línea.

Respuesta1

VerificarPSReadline.

Del artículo:

Este módulo reemplaza la experiencia de edición de la línea de comandos en PowerShell.exe. Proporciona:

  • Coloración de sintaxis
  • Notificación de error de sintaxis simple
  • Una buena experiencia multilínea (tanto de edición como de historial)
  • Combinaciones de teclas personalizables
  • Modos cmd y emacs (ninguno está completamente implementado todavía, pero ambos son utilizables)
  • Muchas opciones de configuración
  • Finalización de estilo Bash (opcional en modo Cmd, predeterminado en modo Emacs)
  • Búsqueda de historial interactiva estilo Bash/zsh (CTRL-R)
  • Anillo de extracción/eliminación de Emacs
  • Movimiento y eliminación de "palabras" basados ​​en tokens de PowerShell
  • Deshacer rehacer
  • Guardado automático del historial, incluido el intercambio del historial entre sesiones en vivo
  • Finalización del "Menú" (algo así como Intellisense, seleccione finalización con flechas) mediante Ctrl+Espacio

¡Lo uso a diario!

Respuesta2

Tal vez deberías echar un vistazo apestaña de energía, una expansión personalizable de la pestaña PowerShell.

Respuesta3

hola peter solo presionaF8para algo como búsqueda rápida. Se completa con los comandos que ejecutas anteriormente que empiezan por lo que tienes en la línea. El problema con la eliminación del trailing es molesto, escribo una sugerencia en Connect sobre el mismo tema. En el momento principal, puede usar Powershell ISE, que se comporta un poco mejor (no elimine los caracteres finales).

Respuesta4

PowerShell utiliza las mismas funciones de consola que el venerable símbolo del sistema; entonces tienes el habitual Inicio/Fin, y:

  • F3para abrir el comando anterior
  • F1para copiar un solo carácter del comando anterior
  • F7ventana emergente de historial

...pero, hasta donde yo sé, no hay posibilidad de mostrar todas las terminaciones posibles.

información relacionada