Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Prior Art

Patrick edited this page Jan 29, 2021 · 15 revisions

Jethrokuan/fzf

[jethrokuan/fzf][] is another fzf plugin that provides similar features and is prevalent in the fish community (470+ stargazers and 30 contributors, including me). In fact, I referenced it when creating this pluginβ€”thank you Jethro!

So why another fzf plugin? While contributing to jethrokuan/fzf, I was discouraged by the complexity and inefficiency of the code that resulted from feature cruft (e.g. it provides multiple overlapping ways to action on files: find, cd, and open) and poor design decisions (e.g. Tmux support was implemented using a variable command). Moreover, Jethro has lost interest in his plugin (he later confirmed to me that he stopped using fish). Wanting a sharper tool and to give back to the community, I decided to write my own plugin.

After much work, fzf.fish now implements most of the same features but is faster, easier to maintain, and more [Unix-y][unix philosophy]. I also added new features: using fzf to search git status, git log, and shell variables. However, I chose not to implement Tmux support, because users can easily add support externally themselves; and tab completion, because even jethrokuan/fzf's implementation of it is buggy as evidenced by the many [issues reported about it][].

TLDR: choose fzf.fish over [jethrokuan/fzf][] if you want

  • faster, more efficient, code
  • code that is easier to debug if you encounter issues
  • a tool built on [Unix philosophy][]
  • a plugin that is more likely to attract future contributors because it is more maintainable
  • a plugin that will be more frequently updated by its author (Jethro no longer uses fish)
  • features for searching git status, git log, and shell variables

and you don't mind

  • having to integrate fzf with Tmux yourself, which is easy to do
  • not having buggy fzf tab completion

Fzf's out-of-the-box Fish extension

Fzf optionally comes with its own [Fish extension][]. It is substantial but fzf.fish has these advantages over it:

  • features for searching git status, git log, and shell variables
  • timestamps when searching command history
  • colorized results when searching for files
  • previews when searching for files
  • configurable key bindings
  • [autoloaded][autoloads] functions for faster shell startup
  • easier to read, maintain, and contribute to
  • better maintained

Clone this wiki locally

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /