2010-11-23 6 views
5

Supposons que je possède le dossier suivant: C:\[test]\x, puis, à l'intérieur du dossier [test], je ne peux absolument pas utiliser l'onglet de complétion de PowerShell.Problème d'achèvement de l'onglet PowerShell

Je suppose que la raison en est que le nom du dossier doit être échappé à ´[test´] (avec les ticks inversés, ce qui provoque des problèmes de Markdown ici), comme il le fait lorsque tabulation à l'intérieur C:\.

Je ne me soucie pas vraiment de l'achèvement de l'onglet manquant quand à l'intérieur de C:\ et en tapant [t..., mais je voudrais utiliser l'achèvement de l'onglet dans ce dossier. Est-il possible de corriger ce comportement?

+0

Je ne peux même pas entrer dans ce dossier avec 'Set-Location' ... il a besoin de l'argument' LiteralPath'. Yikes. – Joey

Répondre

2

PowerShell et beaucoup de ses fonctionnalités en général ne fonctionnent pas bien avec les chemins avec des symboles spéciaux, [ et ] symboles en premier lieu. Nous ne pouvons pas réparer le noyau PowerShell mais nous pouvons réparer/remplacer certaines fonctionnalités. TabExpansion est l'un d'entre eux. C'est juste une fonction globale qui peut être remplacée par une implémentation améliorée.

Plusieurs implémentations TabExpansion personnalisées peuvent être trouvées ici et là. J'utilise le mien. Il est agnostique de l'hôte (au moins, il fonctionne bien avec la console, ISE et mon propre hôte), il est raisonnablement simple et pourtant il apporte beaucoup d'améliorations. Votre problème particulier est résolu, aussi.

Le code de TabExpansion (point-source, il ou appeler simplement à partir de votre profil PowerShell): http://code.google.com/p/farnet/source/browse/trunk/PowerShellFar/TabExpansion.ps1

Certaines de ses caractéristiques sont couverts par ce test: http://code.google.com/p/farnet/source/browse/trunk/PowerShellFar/Bench/Test/Test-TabExpansion-.ps1 (Le test ne fonctionne que dans le environnement spécial, ne l'exécutez pas, jetez un oeil aux commentaires dans le code pour voir ce que TabExpansion peut faire).

+0

Merci, je vais jeter un oeil à cela! – poke