{"id":13392695,"url":"https://github.com/jhawthorn/fzy","last_synced_at":"2025-05-13T18:12:03.757Z","repository":{"id":18557722,"uuid":"21759532","full_name":"jhawthorn/fzy","owner":"jhawthorn","description":":mag: A simple, fast fuzzy finder for the terminal","archived":false,"fork":false,"pushed_at":"2024-12-10T02:01:38.000Z","size":339,"stargazers_count":3063,"open_issues_count":53,"forks_count":132,"subscribers_count":38,"default_branch":"master","last_synced_at":"2025-05-08T00:35:40.045Z","etag":null,"topics":["c","cli","fuzzy","fuzzy-finders","fuzzy-search","fuzzyfinder","fzy","unix","vim"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jhawthorn.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-07-12T04:30:53.000Z","updated_at":"2025-05-07T18:21:26.000Z","dependencies_parsed_at":"2022-07-10T22:46:46.020Z","dependency_job_id":"24a567f7-e559-46d7-94af-f22da1719869","html_url":"https://github.com/jhawthorn/fzy","commit_stats":{"total_commits":400,"total_committers":38,"mean_commits":"10.526315789473685","dds":"0.26249999999999996","last_synced_commit":"9aa19d3250070f0cc9f5601b805ee6ce3d654377"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhawthorn%2Ffzy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhawthorn%2Ffzy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhawthorn%2Ffzy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhawthorn%2Ffzy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jhawthorn","download_url":"https://codeload.github.com/jhawthorn/fzy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254000857,"owners_count":21997442,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","cli","fuzzy","fuzzy-finders","fuzzy-search","fuzzyfinder","fzy","unix","vim"],"created_at":"2024-07-30T17:00:35.130Z","updated_at":"2025-05-13T18:12:03.730Z","avatar_url":"https://github.com/jhawthorn.png","language":"C","funding_links":[],"categories":["C","Command Line","Uncategorized","\u003ca name=\"option-picker\"\u003e\u003c/a\u003eFuzzy finders and option pickers","Tool","Other"],"sub_categories":["Dependency Management","Uncategorized","TUI Tool"],"readme":"![fzy](http://i.hawth.ca/u/fzy-github.svg)\n\n**fzy** is a fast, simple fuzzy text selector for the terminal with an advanced scoring algorithm.\n\n[Try it out online!](http://jhawthorn.github.io/fzy-demo)\n\n![](http://i.hawth.ca/u/fzy_animated_demo.svg)\n\n\u003cblockquote\u003e\nIt's been kind of life-changing.\n-\u003ca href=\"https://github.com/graygilmore/\"\u003e@graygilmore\u003c/a\u003e\n\u003c/blockquote\u003e\n\n\u003cblockquote\u003e\nfzy works great btw\n-\u003ca href=\"https://twitter.com/alexblackie/status/719297828892188672\"\u003e@alexblackie\u003c/a\u003e\n\u003c/blockquote\u003e\n\n [![Build Status](https://github.com/jhawthorn/fzy/workflows/CI/badge.svg)](https://github.com/jhawthorn/fzy/actions)\n\n## Why use this over fzf, pick, selecta, ctrlp, ...?\n\nfzy is faster and shows better results than other fuzzy finders.\n\nMost other fuzzy matchers sort based on the length of a match. fzy tries to\nfind the result the user intended. It does this by favouring matches on\nconsecutive letters and starts of words. This allows matching using acronyms or\ndifferent parts of the path.\n\nA gory comparison of the sorting used by fuzzy finders can be found in [ALGORITHM.md](ALGORITHM.md)\n\nfzy is designed to be used both as an editor plugin and on the command line.\nRather than clearing the screen, fzy displays its interface directly below the current cursor position, scrolling the screen if necessary.\n\n## Installation\n\n**macOS**\n\nUsing Homebrew\n\n    brew install fzy\n\nUsing MacPorts\n\n    sudo port install fzy\n\n**[Arch Linux](https://www.archlinux.org/packages/?sort=\u0026q=fzy\u0026maintainer=\u0026flagged=)/MSYS2**: `pacman -S fzy`\n\n**[FreeBSD](https://www.freebsd.org/cgi/ports.cgi?query=fzy\u0026stype=all)**: `pkg install fzy`\n\n**[Gentoo Linux](https://packages.gentoo.org/packages/app-shells/fzy)**: `emerge -av app-shells/fzy`\n\n**[Ubuntu](https://packages.ubuntu.com/search?keywords=fzy\u0026searchon=names\u0026suite=bionic\u0026section=all)/[Debian](https://packages.debian.org/search?keywords=fzy\u0026searchon=names\u0026suite=all\u0026section=all)**: `apt-get install fzy`\n\n**[pkgsrc](http://pkgsrc.se/misc/fzy) (NetBSD and others)**: `pkgin install fzy`\n\n**[openSUSE](https://software.opensuse.org/package/fzy)**: `zypper in fzy`\n\n### From source\n\n    make\n    sudo make install\n\nThe `PREFIX` environment variable can be used to specify the install location,\nthe default is `/usr/local`.\n\n## Usage\n\nfzy is a drop in replacement for [selecta](https://github.com/garybernhardt/selecta), and can be used with its [usage examples](https://github.com/garybernhardt/selecta#usage-examples).\n\n### Use with Vim\n\nfzy can be easily integrated with vim.\n\n``` vim\nfunction! FzyCommand(choice_command, vim_command)\n  try\n    let output = system(a:choice_command . \" | fzy \")\n  catch /Vim:Interrupt/\n    \" Swallow errors from ^C, allow redraw! below\n  endtry\n  redraw!\n  if v:shell_error == 0 \u0026\u0026 !empty(output)\n    exec a:vim_command . ' ' . output\n  endif\nendfunction\n\nnnoremap \u003cleader\u003ee :call FzyCommand(\"find . -type f\", \":e\")\u003ccr\u003e\nnnoremap \u003cleader\u003ev :call FzyCommand(\"find . -type f\", \":vs\")\u003ccr\u003e\nnnoremap \u003cleader\u003es :call FzyCommand(\"find . -type f\", \":sp\")\u003ccr\u003e\n```\n\nAny program can be used to filter files presented through fzy. [ag (the silver searcher)](https://github.com/ggreer/the_silver_searcher) can be used to ignore files specified by `.gitignore`.\n\n``` vim\nnnoremap \u003cleader\u003ee :call FzyCommand(\"ag . --silent -l -g ''\", \":e\")\u003ccr\u003e\nnnoremap \u003cleader\u003ev :call FzyCommand(\"ag . --silent -l -g ''\", \":vs\")\u003ccr\u003e\nnnoremap \u003cleader\u003es :call FzyCommand(\"ag . --silent -l -g ''\", \":sp\")\u003ccr\u003e\n```\n\n## Sorting\n\nfzy attempts to present the best matches first. The following considerations are weighted when sorting:\n\nIt prefers consecutive characters: `file` will match \u003ctt\u003e\u003cb\u003efile\u003c/b\u003e\u003c/tt\u003e over \u003ctt\u003e\u003cb\u003efil\u003c/b\u003et\u003cb\u003ee\u003c/b\u003er\u003c/tt\u003e.\n\nIt prefers matching the beginning of words: `amp` is likely to match \u003ctt\u003e\u003cb\u003ea\u003c/b\u003epp/\u003cb\u003em\u003c/b\u003eodels/\u003cb\u003ep\u003c/b\u003eosts.rb\u003c/tt\u003e.\n\nIt prefers shorter matches: `abce` matches \u003ctt\u003e\u003cb\u003eabc\u003c/b\u003ed\u003cb\u003ee\u003c/b\u003ef\u003c/tt\u003e over \u003ctt\u003e\u003cb\u003eabc\u003c/b\u003e d\u003cb\u003ee\u003c/b\u003e\u003c/tt\u003e.\n\nIt prefers shorter candidates: `test` matches \u003ctt\u003e\u003cb\u003etest\u003c/b\u003es\u003c/tt\u003e over \u003ctt\u003e\u003cb\u003etest\u003c/b\u003eing\u003c/b\u003e\u003c/tt\u003e.\n\n## See Also\n\n* [fzy.js](https://github.com/jhawthorn/fzy.js) Javascript port\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjhawthorn%2Ffzy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjhawthorn%2Ffzy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjhawthorn%2Ffzy/lists"}