So it’s a fancy fuzzy finder? How is it different/better than fzf? Is it more integrated but therefore less flexible (e.g. less UNIXy)?
I read some early report on the neovim reddit where people complained that it was slower than fzf. So I did not bother looking into it more, also because no one could really explain it well.
I would say it's more integrated but also more flexible (only within neovim though. I don't have any good solution to run telescope from command line at this moment).
Each aspect of telescope can be customized (so you can change the sorting algorithm, the previewer, the search text, the format of the UI, etc). It was designed for vimmers to spend endless hours configuring (which is my favorite pasttime) ;)
The speed difference should be less now (for most of the pickers, I haven't fixed all of them yet), but fzf is (and probably always will be) faster than telescope.
It's a bit difficult to explain in short amounts, but I will hopefully put together a youtube series and/or some writing where I can explain it more succinctly. I usually feel like I have too much to say when it comes to telescope.
Ultimately though, I think if fzf is working well for you then I probably would not switch. fzf is really awesome!
For me it does so much more out of the box than fzf does. It takes advantage of the lsp to search your project in unique ways. Simply calling :Telescope will bring up a fuzzy list of all the built in commands making it far more discoverable than fzf was.
If you're already familiar with and enjoy FZF or CtrlP-like fuzzy finders in Vim interfaces then the tl;dr is "Telescope is to FZF as Neovim is to Vim'. It would be easy to say "they're both the same picture" and that would be very true to a degree but I'd say Telescope looks like the next evolutionary step in this area to me because:
- it's written in lua (I know for NeoVim this is like 'X rewritten in Rust' headlines are for the general HN audience, but thought I'd get it out of the way. I do believe this will lead to a faster/bigger development ecosystem and also provide a very Vim-appropriate degree of configurability for people who want to invest some time in coding to tweak their worflow.)
- The "speed" issue is mostly about implementing async-aware stuff so nothing blocks. This is a general trend in Neovim and it seems to be going well but people who tried it a while back may have hit issues and not seen the full benefit of this yet as it's an ongoing process.
- Like Ripgrep, the fastest search is the smartest search i.e. that doesn't actually search everything, and the configurability and still nascent UI experiments seems likely to lead to some optimums here as people specialize in different things.
- It assumes you have a recent (currently unstable nightly) version of Neovim, and takes advantage of that opportunity to make full use of NeoVim core changes at the design stage. You could probably ask the exact same question of "Why do I want Neovim if I'm fine with Vim?" and there's probably many good write-ups of that question that will transitively apply here as well.
- Because the basic UI it provides is a sweet spot of 'pretty, usable, fast, easy-to-build-on, configurable' and they're working with this connecting layer in mind it looks like it might absorb/replace a lot of other plugins that are currently reinventing wheels in this regard and let them focus on the bit they actually care about.
But yeah, it wouldn't exist without those other things existing before it and I'd be more excited to introduce someone to this whole world of tools, than this one in particular. But anyone using these kind of tools, should try this out, and probably the first impression for those people would be, "Oh that looks cooler" and then shortly after "I'm going to write my own plugin!".
Thank you so much for the thorough answer! There is a lot of exciting stuff for neovim rolling by e.g. on Reddit and I am already very happy with 0.5 so far. It is just hard to filter which new neovim/lua project is really worth the time to check out and potentially break your current setup.
I will give it a try.
I read some early report on the neovim reddit where people complained that it was slower than fzf. So I did not bother looking into it more, also because no one could really explain it well.