É possível fazer o preenchimento automático no Powershell funcionar como no bash?

É possível fazer o preenchimento automático no Powershell funcionar como no bash?

Eu adoro o Powershell, mas vindo de uma experiência em Linux, há algumas coisas que realmente estão me incomodando. Por exemplo, como funciona o preenchimento automático padrão.

Por exemplo: Get-PS se expande para "Get-PSBreakpoint", que é o primeiro comando correspondente. No bash, se houver apenas um comando correspondente, o bash será expandido para o comando correspondente. Se houver várias guias pressionadas uma vez, não faz nada, tocar duas vezes na guia mostrará uma lista de comandos correspondentes, mas não será expandida. Existe uma maneira de fazer o Powershell se comportar assim?

E outra coisa, se eu escrevi uma linha e mova o marcador de volta para um comando anterior (o marcador é onde ^ está):

"Get-PSS^ | Remove-PSSession" é concluído automaticamente para "Get-PSSession^", removendo todos os comandos finais. No bash, os comandos finais ainda não seriam afetados. Existe uma maneira de fazer com que o Powershell não remova os comandos finais durante a conclusão automática?

Um bônus seria obter CTRL+L para limpar a tela. CTRL+A para ir para o início da linha e CTRL+E para ir para o final da linha.

Responder1

ConfiraPSReadline.

Do artigo:

Este módulo substitui a experiência de edição de linha de comando no PowerShell.exe. Ele fornece:

  • Coloração de sintaxe
  • Notificação de erro de sintaxe simples
  • Uma boa experiência multilinha (edição e histórico)
  • Atalhos de teclas personalizáveis
  • Modos Cmd e emacs (nenhum deles está totalmente implementado ainda, mas ambos podem ser usados)
  • Muitas opções de configuração
  • Conclusão do estilo Bash (opcional no modo Cmd, padrão no modo Emacs)
  • Pesquisa de histórico interativo no estilo Bash/zsh (CTRL-R)
  • Anel de arrancar/matar Emacs
  • Movimento e eliminação de "palavras" baseado em token do PowerShell
  • Desfazer refazer
  • Salvamento automático do histórico, incluindo compartilhamento do histórico em sessões ao vivo
  • Conclusão do "Menu" (algo como o Intellisense, selecione a conclusão com setas) via Ctrl + Espaço

Eu uso diariamente!

Responder2

Talvez você devesse dar uma olhadaPowertab, uma expansão personalizável da guia PowerShell.

Responder3

oi Peter, basta pressionarF8para algo como pesquisa rápida. Completa-se com os comandos que você executou anteriormente que começam com o que você tem na linha. O problema com a exclusão do trailing é chato, escrevo uma sugestão no Connect sobre o mesmo problema. Na maioria das vezes você poderia usar o Powershell ISE, que se comporta um pouco melhor (não exclua os caracteres finais).

Responder4

O PowerShell usa os mesmos recursos de console do venerável Prompt de Comando; então você tem o Home/End usual e:

  • F3para trazer o comando anterior
  • F1para copiar um único caractere do comando anterior
  • F7janela pop-up do histórico

... mas não há como mostrar todas as conclusões possíveis, até onde eu sei.

informação relacionada