dotnet-CLI透過TAB自動完成
最近打算開始學習 .NET 6,自然就要先做一些準備工作,第一步就是 CLI 的 AutoComplete 功能
一直以來習慣的指令列工具都是微軟內建的 CMD.exe,可能是因為他跟 MS-DOS 6.0 很像,從以前就用到現在了所以就一直沒改,後來也都是用類似Cmder
這樣的工具,但骨子還是沒變。
不過因為powerShell
真的很強大,也應該是時候換一下工具了,最主要的是,他能夠透過設定的方式達到我們需要的自動完成功能,其實官方文件就已經說明了這件事情,並且介紹了支援的幾個 shell
有興趣的可以前往觀看如何啟用 .NET CLI 的 TAB 鍵自動完成
PowerShell 設定
1 | # PowerShell parameter completion shim for the dotnet CLI |
重點就是上面的程式碼而已,雖然我不會寫powerShell
但也能看得懂邏輯,大概就是註冊一個自動完成的事件給dotnet
指令,然後接受參數,並透過設定的dotnet complete --position
指令去循環,大概的原理是這樣,能夠做到這件事情應該也是依靠dotnet complete
那麼理解了之後,自然也就要知道這份設定檔如何設定,在官網範例程式碼旁邊可以看到
請參閱如何和設定檔與執行原則。
建立 powerShell 設定檔
第一步當然就是先去看一下建立設定檔
1 | if (!(Test-Path -Path $PROFILE)) { |
看起來應該也很容易理解語意,如果路徑檔案名稱不存在的話,就強制建立一個檔案:$PROFILE,這應該也是一個特殊保留字,用來表示設定檔的吧
1 | notepad $PROFILE |
接著再透過 notepad 開啟該檔案,並且將我們之前自動完成的程式碼貼上去儲存就可以了
設定檔和執行原則
如果開啟powerShell
之後發現紅色的警告說是不能執行程式的話,那麼這個關於執行原則可能就要先了解一下
建議是全部先看過一次,然後挑選適合的設定值進行設定,以我的情況在本機自己練習開發,所以我直接設定
1 | Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -scope CurrentUser |
VSCode 設定預設 shell
開啟Terminal
之後這個地方可以設定預設值
或是直接按下F1
輸入關鍵字,也能夠查到指令
然後就會列出各種 shell,在這邊就可以指定預設的 shell 了
結尾
經過上面的設定後,開啟 powerShell 也不再出現錯誤提示,並且在我輸入 dotnet a
的時候,他也會自動幫我改為dotnet add
,但不知道是不是因為我電腦比較慢的關係,反應時間有點久,不過起碼是正確動作了