Comment by mirzap

1 month ago

I tried using Starship, and it’s clearly faster than Oh My Zsh, but my issue was that I relied on some useful Oh My Zsh features that I didn’t know how to replicate in Starship. One of these is history filtering - for example, when I type source and press the up arrow, I only see previously run source commands, which makes it easy to find what I’m looking for. I tried to get this working in Starship, but had no luck.

Control r. This is a zsh feature not a starship/oh my zsh feature

  • I think that's just a standard readline functionality. It's available on bash, out of the box.

    • Absolutely and in zsh too, out of the box. It kind of blows my mind that people think they need all this additional bloatware for things which have always just worked (at least as far back as like 96 or so which is when I started using Linux) but it wasn’t new then.

      Wait till people learn they can use rlwrap to get the benefit of readline even in things like commandline sql clients, which often lack this.

      1 reply →

  • Oh my god! How did I not know about this! Thank you! Are there any other useful tips like this one?

    • You are most welcome. Probably hundreds but I don't know what you don't know. It's worth learning some old-school command-line history fu as well because that is often useful. I've written up some things I have found helpful here[1]

      One thing which is not in the writeup but should be (and I mention it in a sibling thread) is "rlwrap" which is a readline wrapper which imbues whatever program with readline editing and history niceness.

      So say you have to use some crufty cli like a sql cli or something that doesn't have commandline editing or history. You run "rlwrap horrible_sql_cli" aaand now it does. Really helpful.

      [1] https://www.uncarved.com/articles/unix/

  • mirzap was probably using some omz plugin to do that, so if starship fully replaced omz, that functionality went away, too.

I have never used Oh My Zsh, but I use Atuin to do this and it works excellently at that. You can even make it filter by what folder you're in and whether you want to search only this session or host (you can sync shell history across hosts). It never occurred to me that this is something I'd want from a shell prompt, which is what Starship is.