web-dev-qa-db-fra.com

Comment faire fonctionner la complétion de l'onglet PowerShell comme Bash

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

buildBar.bat
buildFoo.bat
buildHouse.bat

Et je tape ce qui suit à mon invite de commande, ./bu et alors 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 PowerShell.

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

78
RobSiklos

Les nouvelles versions de PowerShell incluent PSReadline, qui peut être utilisé pour ce faire:

Set-PSReadlineKeyHandler -Key Tab -Function Complete

Pour la rendre permanente, placez cette commande dans C:\Users\[User]\Documents\WindowsPowerShell\profile.ps1.

108
svick

Il est désormais possible d'obtenir PowerShell pour effectuer une exécution de style Bash, en utilisant PSReadline.

Consultez l'article de blog Complétion de l'onglet de type Bash dans PowerShell.

16
Jay Bazuzi

Jetez un oeil ici, pas vraiment vos desiderata:

PowerTab

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

14
CB.

Modifiez la fonction TabExpansion pour obtenir ce que vous voulez. N'oubliez pas que peut-être il se termine jusqu'à la fin si vous appuyez à nouveau sur la touche tab, la nouvelle suggestion est modifiée à partir de l'endroit où vous avez initialement appuyé sur la touche. Je préfère fortement le comportement réel, je veux que la ligne soit écrite aussi vite que possible. Enfin n'oubliez pas l'extension générique, par exemple: bu * h [Tab] se termine automatiquement en buildHouse.bat

5
mjsr