Comment activer la saisie semi-automatique via la touche TAB pour l’interface CLI .NET
Cet article s’applique à : ✔️ SDK .NET Core 2.1 et versions ultérieures
Cet article explique comment configurer la saisie semi-automatique via la touche TAB pour cinq interpréteurs de commandes : PowerShell, Bash, zsh, fish et nushell. Pour d’autres interpréteurs de commandes, reportez-vous à leur documentation sur la configuration de la saisie semi-automatique via la touche TAB.
Une fois activée, la saisie semi-automatique via la touche TAB dans l’interface CLI .NET Core se déclenche en tapant une commande dotnet
dans l’interpréteur de commandes, puis en appuyant sur la touche Tab. La ligne de commande actuelle est envoyée à la commande dotnet complete
, et les résultats sont traités par votre interpréteur de commandes. Vous pouvez tester les résultats sans activer la saisie semi-automatique via la touche TAB en envoyant une instruction directement à la commande dotnet complete
. Par exemple :
> dotnet complete "dotnet a"
add
clean
--diagnostics
migrate
pack
Si cette commande ne fonctionne pas, vérifiez que le kit SDK .NET Core 2.0 ou version ultérieure est installée. S’il est installé mais que cette commande ne fonctionne toujours pas, vérifiez que la commande dotnet
correspond à la version 2.0 ou ultérieure du SDK .NET Core. Utilisez la commande dotnet --version
pour afficher la version de dotnet
correspondant à votre chemin d’accès actuel. Pour plus d’informations, consultez Sélectionner la version .NET Core à utiliser.
Exemples
Voici quelques exemples de saisie semi-automatique via la touche TAB :
Entrée | devient | car |
---|---|---|
dotnet a⇥ |
dotnet add |
add est la première sous-commande, par ordre alphabétique. |
dotnet add p⇥ |
dotnet add --help |
La saisie semi-automatique renvoie des sous-chaînes et --help s’affiche en premier, par ordre alphabétique. |
dotnet add p⇥⇥ |
dotnet add package |
Une seconde pression sur la touche TAB fait apparaître la suggestion suivante. |
dotnet add package Microsoft⇥ |
dotnet add package Microsoft.ApplicationInsights.Web |
Les résultats s’affichent par ordre alphabétique. |
dotnet remove reference ⇥ |
dotnet remove reference ..\..\src\OmniSharp.DotNet\OmniSharp.DotNet.csproj |
La saisie semi-automatique via la touche TAB tient compte du fichier de projet. |
PowerShell
Pour ajouter la saisie semi-automatique via la touche TAB à PowerShell pour l’interface CLI .NET Core, créez ou modifiez le profil stocké dans la variable $PROFILE
. Pour plus d’informations, consultez Création de votre profil et Profils et stratégie d’exécution.
Ajoutez le code suivant à votre profil :
# PowerShell parameter completion shim for the dotnet CLI
Register-ArgumentCompleter -Native -CommandName dotnet -ScriptBlock {
param($wordToComplete, $commandAst, $cursorPosition)
dotnet complete --position $cursorPosition "$commandAst" | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
}
}
bash
Pour ajouter la saisie semi-automatique via la touche TAB à votre interpréteur de commandes bash pour l’interface CLI .NET, ajoutez le code suivant à votre fichier .bashrc
:
# bash parameter completion for the dotnet CLI
function _dotnet_bash_complete()
{
local cur="${COMP_WORDS[COMP_CWORD]}" IFS=$'\n' # On Windows you may need to use use IFS=$'\r\n'
local candidates
read -d '' -ra candidates < <(dotnet complete --position "${COMP_POINT}" "${COMP_LINE}" 2>/dev/null)
read -d '' -ra COMPREPLY < <(compgen -W "${candidates[*]:-}" -- "$cur")
}
complete -f -F _dotnet_bash_complete dotnet
zsh
Pour ajouter la saisie semi-automatique via la touche TAB à votre interpréteur de commandes zsh pour l’interface CLI .NET, ajoutez le code suivant à votre fichier .zshrc
:
# zsh parameter completion for the dotnet CLI
_dotnet_zsh_complete()
{
local completions=("$(dotnet complete "$words")")
# If the completion list is empty, just continue with filename selection
if [ -z "$completions" ]
then
_arguments '*::arguments: _normal'
return
fi
# This is not a variable assignment, don't remove spaces!
_values = "${(ps:\n:)completions}"
}
compdef _dotnet_zsh_complete dotnet
poisson
Pour ajouter la saisie semi-automatique via la touche TAB à votre interpréteur de commandes fish pour l’interface CLI .NET, ajoutez le code suivant à votre fichier config.fish
:
complete -f -c dotnet -a "(dotnet complete (commandline -cp))"
nushell
Pour ajouter la saisie semi-automatique via la touche TAB à votre nushell pour l’interface CLI .NET, ajoutez le code suivant au début de votre fichier config.nu
:
let external_completer = { |spans|
{
dotnet: { ||
dotnet complete (
$spans | skip 1 | str join " "
) | lines
}
} | get $spans.0 | each { || do $in }
}
Puis, dans l’enregistrement config
, recherchez la section completions
et ajoutez la valeur external_completer
définie précédemment à external
:
let-env config = {
# your options here
completions: {
# your options here
external: {
# your options here
completer: $external_completer # add it here
}
}
}