What does HackerNews think of fzy?

:mag: A simple, fast fuzzy finder for the terminal

Language: C

#8 in C
#9 in Vim
> it supports my keystrokes

You know that there is basically a standard set, imposed by Windows in about 1986 or something and also supported in GNOME 2, MATE, Xfce, LXDE, etc etc.? I am more interested in if it supports them. I mean, I don't know what your set are, and I am not for a moment saying there's anything wrong with them, but there are standards for this stuff, used heavily by millions of blind computer users for example.

> Have you considered the possibility you are so set in your ways that you are neglecting new and useful tool?

Could be. I am a professional assessor of, and commentator on, this stuff, though.

I mainly use a desktop I switched to in 2011. :-) Before that, I changed in 2004, after a change in 2001, after a change in 1995, after a change in 1992, after one in 1989, etc. etc.

I mean I am an old pharte, fair call, but I am a reasonably adaptable one, I think. :-D

What is "fzy"?

https://github.com/jhawthorn/fzy

...?

> Then make the panel vertical instead of horizontal

Why don't any of the screenshots show that, then?

I see 6 horizontal panels in the screenies on the homepage and Github, and one with none. From that, I don't think it's unreasonable to conclude this is not a core feature or something.

fzy[1] is a less bloated alternative, written in C. fzf is neat, but it does too much.

[1]: https://github.com/jhawthorn/fzy

> Rust is really the main thing in my end-user stack I'm waiting on since fzy, bat, exa,

Can you expand further?

    % cargo install bat
        Finished release [optimized] target(s) in 2m 21s
      Installing ~/.cargo/bin/bat
       Installed package `bat v0.16.0` (executable `bat`)
    
    % file $(which bat)
    ~/.cargo/bin/bat: Mach-O 64-bit executable arm64
    
    
    % cargo install exa
        Finished release [optimized] target(s) in 1m 21s
      Installing ~/.cargo/bin/exa
       Installed package `exa v0.9.0` (executable `exa`)
       
    % file $(which exa)
    ~/.cargo/bin/exa: Mach-O 64-bit executable arm64
I don't know what you mean by [fzy], as it appears to be a C program, not Rust.

See also:

• The tracking issue for tier 1 support [tracking]

• My intermediate README with instructions [readme]

[fzy]: https://github.com/jhawthorn/fzy

[tracking]: https://github.com/rust-lang/rust/issues/73908

[readme]: https://github.com/shepmaster/rust/blob/silicon/silicon/READ...

There's a lot of these pickers and they are indeed similar. I've been using https://github.com/jhawthorn/fzy since it's not fullscreen and has a really good matching algorithm.
fzy[1], which is written in C, seems to be slightly faster:

    $ hyperfine --warmup 2 -r 10 'rg --files | fzy -e hello'  'rg --files | fzf -f hello'
    Benchmark #1: rg --files | fzy -e hello
      Time (mean ± σ):     153.6 ms ±  57.9 ms    [User: 399.2 ms, System: 96.9 ms]
      Range (min … max):    85.9 ms … 244.3 ms    10 runs
     
    Benchmark #2: rg --files | fzf -f hello
      Time (mean ± σ):     210.5 ms ±  61.6 ms    [User: 443.3 ms, System: 90.9 ms]
      Range (min … max):   123.3 ms … 315.5 ms    10 runs
     
    Summary
      'rg --files | fzy -e hello' ran
        1.37 ± 0.65 times faster than 'rg --files | fzf -f hello'

[1] https://github.com/jhawthorn/fzy
Many interested in autojump could probably get what they want out of nice, pure https://github.com/rupa/z

Here's an alternative to fzf, for comparison's sake:

https://github.com/jhawthorn/fzy

I put "set editing-mode vi" in my ~/.inputrc to enable basic vi keyboard shortcuts in readline-based programs like bash.

If I'm using bash on a machine I don't control, I can type "set -o vi" at the bash prompt to get the same thing temporarily, and that's usually the first thing I type.

I also like to use rlwrap[1] to get readline editing and command history on terminal apps that aren't readline aware and don't have history of their own.

Most of the time, though I spend in zsh, which is not readline-based but has its own readline-like capabilities. There I have ^R bound to reverse history search, and ^E to edit the current line in my $EDITOR.

In addition to this, I use fzy[2] (which I prefer over fzf[3]) to do fuzzy searches over my shell history with something like:

  history 0 | perl -p -E's/^\s*\S+\s*//' | sort -u | fzy --lines=$LINES
[1] - http://utopia.knoware.nl/~hlub/uck/rlwrap/

[2] - https://github.com/jhawthorn/fzy/

[3] - https://github.com/junegunn/fzf