With this decision to switch to PowerShell in Linux, I'm starting at a loss.
I've been using zsh as my shell for a while now, and what made it even more compelling was the discovery of zinit, a plugin framework for zsh that is (way beyond) awesome.
Zsh as a shell has an awesome community, and GitHub is littered with zsh plugins. Because of this wealth it also developed a problem, excessive loading time when a lot of plugins are crammed to the init/login scripts.
And so different plugin frameworks tried solving this problem, the victor (for me) was zinit with it's (in my opinion) superior design/approach. (it's what I chose to use, so at this point I'm biased 😏)
Anyway, what keeps me in zsh land still, is this convenience that I'm losing for switching to PowerShell.
I'm currently filling up my PowerShell $PROFILE with a bunch of functions and aliases that should make my life easier, but one thing I have trouble relinquishing a hold of is zsh's almost seamless smart autocomplete.
I'm sure someone developed something like that for PowerShell, and that's my next research project into this.
On a side note, I got the prompt almost set. In zsh I use PowerLevel10k, which is a very smart prompt, and customizing it is rather easy.
In PowerShell I'm using Oh-My-Posh, which provides some visual candy similar to p10k, but lacks a lot of it's functionality and mostly it's speed.
I hope I'll find something comparable in the autocomplete soon, otherwise, it'll be hard to stick with PowerShell.
(less than 40 minutes after publishing)
I actually wrote this article thinking this would be a tough thing to find, but apparently, the minds behind PowerShell Core thought about this and provided a solution - in the form of a module named
Import-UnixCompleters Set-UnixCompleter -ShellType Zsh Set-PSReadLineKeyHandler -Key Tab -Function MenuComplete
and I got proper tab completion, very similar to the one I had in zsh.
This will require a few tweaks, but overall what I dreaded, is not longer scary.