如何為 .NET Core CLI 啟用 TAB 自動補全功能
如何為 .NET Core CLI 啟用 TAB 自動補全功能
Intro
在 Linux 下經常可以發現有些目錄/檔名,以及有些工具可以命令輸入幾個字母之後按 TAB 自動補全,最近發現其實 dotnet cli 也可以,從.NET Core 2.0 SDK 開始,NET Core CLI 支援 tab 自動補全。你如果已經裝了 dotnet Core Sdk,但是不知道版本,可以在命令列中輸入dotnet --info
來檢視版本資訊。
使用示例
下面是 tab 自動補全提供的一些示例:
輸入 | 將變為 | 因為 |
---|---|---|
dotnet a⇥
|
dotnet add
|
add
是第一項子命令,按字母排序。 |
dotnet add p⇥
|
dotnet add --help
|
Tab 自動補全匹配子字串,--help
首先按字母順序排列。 |
dotnet add p⇥⇥
|
dotnet add package
|
第二次按 Tab 將顯示下一條建議。 |
dotnet add package Microsoft⇥
|
dotnet add package Microsoft.ApplicationInsights.Web
|
結果按字母順序返回。 |
dotnet remove reference ⇥
|
dotnet remove reference ..\..\src\OmniSharp.DotNet\OmniSharp.DotNet.csproj
|
Tab 自動補全是可識別的專案檔案。 |
啟動 TAB 自動補全功能
Powershell
要將 tab 自動補全新增到適用於 .NET Core CLI 的 PowerShell,請建立或編輯儲存在變數$PROFILE
中的配置檔案。 有關詳細資訊,請參閱如何建立配置檔案和配置檔案和執行策略
。
在 Powershell 中執行notepad $profile
命令,會開啟$profile
配置檔案,如果不能儲存請嘗試用管理員模式的powershell中執行。
將以下程式碼新增到配置檔案中:
# PowerShell parameter completion shim for the dotnet CLI Register-ArgumentCompleter -Native -CommandName dotnet -ScriptBlock { param($commandName, $wordToComplete, $cursorPosition) dotnet complete --position $cursorPosition "$wordToComplete" | ForEach-Object { [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_) } }
如果想看$profile
配置檔案,可以開啟%USERPROFILE%\Documents\WindowsPowerShell
目錄,
在這個目錄下會有一個Microsoft.PowerShellISE_profile.ps1
的檔案,這就是上面的配置檔案
Bash
要將 tab 自動補全新增到適用於 .NET Core CLI 的 bash shell,請將以下程式碼新增到.bashrc
檔案:
vi ~/.bashrc
# bash parameter completion for the dotnet CLI _dotnet_bash_complete() { local word=${COMP_WORDS[COMP_CWORD]} local completions completions="$(dotnet complete --position "${COMP_POINT}" "${COMP_LINE}")" COMPREPLY=( $(compgen -W "$completions" -- "$word") ) } complete -f -F _dotnet_bash_complete dotnet
使用一下
實際使用的效果就如上面的示例一般,如輸入一個dotnet a
,然後按一下 TAB 鍵,命令就會自動補充為dotnet add
,其他的命令就自己去嘗試一下吧~~
如此好用的功能還不快快啟用~