What I'm consciously loosing... or am I?

What I'm consciously loosing... or am I?

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.

lone ranger
Photo by Clem Onojeghuo / Unsplash


(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 Microsoft.PowerShell.UnixCompleters

Install-Module Microsoft.PowerShell.UnixCompleters

followed by

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.