Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I don't want to spend ages figuring out which knobs to turn to get a half decent shell. If there's an alternative to oh-my-zsh that looks halfway decent, has that nice fzf integrated, and the 'ghost text' history suggestions, then I welcome it!


If zsh has its completion fully configured by default, there will be no need for most people to turn knobs nor will it be a "half decent shell." It'll be the best shell, if it isn't already.

I wonder why ghost text history suggestions are popular though, I'd rather not have it. Shell history search works better, and I don't want my shell always showing me or whoever else is looking at the screen random commands that I've previously typed.


> If zsh has its completion fully configured by default, there will be no need for most people to turn knobs nor will it be a "half decent shell." It'll be the best shell, if it isn't already.

The curse of backward compatibility means that zsh does not break your setup or change things on you. And there are still developers left who bear the trauma from the one time that was tried back in the early-mid 90s in the 2.x version series. Sadly that means many new features remain inactive by default, especially anything written in shell-code like command-specific completions.


I for one use and like using both fzf on the search history and the ghost text history. With history, I often end up writing a line that isn't shell so that it fuzzy-matches what I'm looking for. I like having the passive suggestions in addition to that. It doesn't get in my way and if I like what I read, I can accept it.

I'd rather have a good history search than autosuggestion, but having both is a net-positive in my day-to-day.


You should try fish shell. Great user experience out of the box, including history suggestions.

https://fishshell.com


The incompatible syntax of fish makes it a no go for me.

As an SRE, at my day job I often need to copy/paste commands that are generated from a playbook.

Our playbooks use Bash, and in practice Zsh is compatible. But a co-worker using fish often has to manually modify commands before running, and I'm not about that life.

The problem with fish is mostly the different syntax for setting variables and lack of heredocs. Sometimes the string substitution differences come up too.


SRE running copy pasted commands directly instead of a script or some automation solution? I don't think the problem is the shell...


Insinuating that my playbooks are bad or any other kind of incompetence without actually knowing anything about my service is simply being an asshole.


We have everything as scripts rather than one-liners so they work fine no matter which shell you're using.


In our case, we often have complex decision trees to diagnose issues before we get into the ops. Our playbooks are very thorough with details about all of these debugging techniques.

You can never completely automate the debugging step: it often requires human judgement to direct the investigation in ways that can't really be expressed in a script.

The friction of the shell comes up not in executing the ops, which we do in fact have heavy automation around, but in all the little pieces of debugging has to happen to tell you what ops need to be done.

(If you get paged and the solution is to skip the debugging step and run a script, then why didn't you automate the script so that you don't get paged in the first place?)


Exactly. Variable assignment works different in Fish, and it’s very hard to change that habit. With my usage of shell (with Fzf & zoxide), fish simply doesn’t improve much for me. I’m using bash constantly for my job, and having the same syntax in my shell is important


Once you have everything figured out, you just keep using the config you have. It might be worth the investment. I stopped using oh-my-zsh when I realized it was what was causing multi-second delays on Raspberry Pis.

I think auto suggestions and syntax highlighting plugins can be installed separately from oh-my-zsh.

I use starship for a better prompt, and it works on more shells than just Zsh.

I also have Atuin installed to share history across machines, and as a benefit the history search is a lot more powerful.

https://github.com/zsh-users/zsh-autosuggestions

https://github.com/zsh-users/zsh-syntax-highlighting

https://starship.rs

https://atuin.sh


With atuin, do you face a delay when you first load after startup? It's so annoying. It takes a solid 30-minute lag before the history is loaded.

I am running my home on hdd, not ssd. But still do not see justification of this lag.


I self-host an atuin server, and even between machines I don't see anything like that.

I configured daemon mode to workaround an ZFS+sqlite issue. I also have my sync_frequency set to 5m (default is 1h) in the config. Perhaps those are making my experience smoother.


I am using ext4 though. Turned on daemon, let's see if it solves my issue

Thank you


IMO, that alternative is Fish shell.


Zim has been my choice since I got sick of multi second startups with OMZ.


I migrated from omz to zimfw and am reasonably happy.

But I have yet to meet anyone in real life who knows what zimfw is.


I don't know if it's still in vogue, but prezto exists.


I'm definitely not an expert, but I configure zsh manually with those fzf and "ghost text". I took some notes in my repo, just copy the relevant portions if you actually want to try this: https://github.com/bbkane/dotfiles/tree/master/zsh

I tweak it occasionally, but for the most part I set it and forget it.


I noticed you're using `z-shell/F-Sy-H`, "Feature-rich Syntax Highlighting for Zsh".

The `z-shell` github org has (or had) some ... bad vibes, I would personally not use any of their code.

- https://recurse.social/@dylnuge/112224580867240812

- https://www.reddit.com/r/commandline/comments/1c3r7ck/zshell...

- https://www.reddit.com/r/zsh/comments/1c3r5gn/zshellzi_users...

You could use `zsh-users/zsh-syntax-highlighting` as an alternative.



My understanding is zdharma removed their github account, then the name got squatted by the z-shell people.

So probably not.


You split your config across multiple files. That slows startup noticeably.


Have a look at Prezto, it is much simpler and faster than oh My ZSH.


Look into zgen, it's a zsh plugin system but much more static (but less ridiculous out of the box)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: