159 votes

Comment faire fonctionner la complétion d'onglet PowerShell comme Bash ?

Disons que j'ai les fichiers suivants dans mon répertoire courant :

buildBar.bat
buildFoo.bat
buildHouse.bat

Et je tape ce qui suit à mon invite de commande, ./bu et ensuite TAB .

  • Dans Bash, il est étendu à ./build

  • Dans PowerShell, il est étendu à ./buildBar.bat -- le premier élément de la liste.

  • Dans Cmd, le comportement est le même que dans PowerShell.

Je préfère le comportement de Bash - existe-t-il un moyen de faire en sorte que PowerShell se comporte comme Bash ?

264voto

svick Points 81772

Les nouvelles versions de PowerShell incluent PSReadline, qui peut être utilisé à cette fin :

Set-PSReadlineKeyHandler -Key Tab -Function Complete

Pour le rendre permanent, mettez cette commande dans C:\Users\ [Utilisateur] \Documents\WindowsPowerShell\profile.ps1.

29voto

Jay Bazuzi Points 20462

Il est maintenant possible d'obtenir de PowerShell une complétion de type Bash, en utilisant PSReadline.

Consultez l'article du blog Complément de tabulation de type Bash dans PowerShell .

26voto

JerryGoyal Points 9110

tab ne complète que le nom de la commande et non ses arguments/paramètres précédents.

pour compléter automatiquement la commande complète avec les arguments de l'historique, utilisez le raccourci clavier ci-dessous.

Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward

Maintenant, tapez quelques caractères du nom de la commande et utilisez les flèches haut/bas pour autocompléter cette commande (avec les arguments) à partir de l'historique.

un véritable gain de temps.


Voir plus : Mettez votre PowerShell sous tension

15voto

CB. Points 24549

Jetez un coup d'œil ici, ce n'est pas vraiment votre desiderata :

PowerTab

mais je pense que c'est la meilleure fonctionnalité d'extension d'onglet pour la console PowerShell ! !!

12voto

徐志鹏 Points 71
# keep or reset to powershell default
Set-PSReadlineKeyHandler -Key Shift+Tab -Function TabCompletePrevious

# define Ctrl+Tab like default Tab behavior
Set-PSReadlineKeyHandler -Key Ctrl+Tab -Function TabCompleteNext

# define Tab like bash
Set-PSReadlineKeyHandler -Key Tab -Function Complete

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X