J'adore Powershell, mais provenant d'un fond Linux il y a quelques petites choses qui me agace vraiment. Comme par exemple comment fonctionne l'auto complétion par défaut.
Par exemple: Get-PS se développe pour « Get-PSBreakpoint » qui est la première commande correspondante. En bash s'il n'y a qu'une seule commande bash correspondant sera étendu à la commande correspondante. S'il y a plusieurs onglet frapper une fois ne rien, onglet double tapotement affichera une liste de commandes correspondant, mais pas en expansion. Y at-il un moyen de faire Powershell se comporter comme ça?
Et une autre chose, si je l'ai écrit une ligne, et déplace le retardataire à une commande antérieure (marqueur est où le ^ est):
"Get-PSS ^ | Remove-PSSession" auto complète pour "Get-PSSession ^", en supprimant toutes les commandes de fuite. En bash les commandes de fuite seraient toujours là pas affecté. Y at-il un moyen de faire Powershell ne pas supprimer les commandes de fuite au moment de remplir auto?
Un bonus serait d'obtenir CTRL + L pour effacer l'écran. CTRL + A pour aller au début de la ligne, et CTRL + E pour aller à la fin de la ligne.
la source
Réponses:
Découvrez PSReadline .
De l'article:
Je l'utilise quotidiennement!
la source
Set-PSReadlineKeyHandler -Key Tab -Function Complete
CompleteMenu
au lieu deComplete
pour une expérience plus bash, il vous permet d'utiliser les touches fléchées pour naviguer dans les choixPeut-être devriez-vous jeter un coup d’œil à Powertab , une extension personnalisable des onglets PowerShell.
la source
salut peter appuyez simplement sur F8 pour quelque chose comme speedearchearch. Il se termine par les commandes que vous avez exécutées précédemment et qui commencent par ce que vous avez dans la ligne. Le problème avec la suppression de la fin est ennuyeux, je écris une suggestion dans Connect concernant le même problème. À l’époque principale, vous pourriez utiliser Powershell ISE, qui se comporte un peu mieux (ne supprimez pas les caractères de fin).
la source
L'ancien sous-système command.exe est toujours impliqué dans PowerShell et impose de nombreux comportements déplaisants. Mais à partir de PowerShell v3, l’interface utilisateur graphique (PowerShell ISE) est désormais utilisable et inclut une expérience de finition + une colorisation beaucoup plus moderne.
la source
PowerShell utilise les mêmes fonctionnalités de la console que la vénérable invite de commande; vous avez donc l'habitude Home / End, et:
... mais il n'y a aucune installation pour montrer toutes les complétions possibles, autant que je sache.
la source
Powershell standard utilise cmd comme fenêtre d'invite de commande. C'est pourquoi il a un héritage considérable (les programmes reposent sur le comportement de l'ancienne cmd depuis des siècles) qui ne peut être modifié en raison de la comparabilité en arrière.
Je vous recommande d'utiliser powershell_ise au lieu de powershell (il est inclus dans le bundle powershell standard). La version 3.0 (ne pas sûr de la précédente) supporte Intellisense à partir de la boîte. Ceci est très proche du style d'achèvement bash. Appuyez simplement sur Ctrl + Espace au lieu de Tab. Je rencontre des problèmes avec les finitions personnalisées sur PowerTab, mais Intellisense fonctionne très bien avec cela. Powershell_ise préserve également les commandes de fin, utilise le mode de sélection normal, prend en charge les touches Ctrl + C, Ctrl + V, Ctrl + A pour la commande de sélection, afin que Ctrl + A saute en début de ligne, Ctrl + A /Fin).
la source
PowerShell utilise son propre analyseur syntaxique pour les commandes. Il s’agit donc, dans un sens, d’un shell différent de celui de cmd.exe, même s’ils partagent le même terminal (fenêtre graphique).
En raison de cette différence, PowerShell vous permet de remplacer la fonctionnalité de complétion par la tabulation par votre propre fonction. Je n'ai pas eu le temps de m'y prendre moi-même, mais vous remplacez fondamentalement la fonction
tabexpansion
dans votre profil, de la même manière que vous pouvez remplacer laprompt
fonction.J'ai trouvé cet article , rédigé par Lee Holmes (auteur du livre de recettes impressionnant Windows PowerShell ), qui décrit un remplacement de tabexpansion très similaire à ce que vous recherchez. Vous pouvez probablement le modifier pour vous donner exactement ce que vous voulez.
la source