{"id":16722073,"url":"https://github.com/suvayu/fzf_search","last_synced_at":"2026-03-18T21:46:42.733Z","repository":{"id":138513409,"uuid":"565624356","full_name":"suvayu/fzf_search","owner":"suvayu","description":"Recursively search a directory tree with ripgrep and fzf","archived":false,"fork":false,"pushed_at":"2024-09-12T05:02:50.000Z","size":7638,"stargazers_count":4,"open_issues_count":3,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-14T19:58:41.728Z","etag":null,"topics":["fzf","fzf-scripts","ripgrep","ripgrep-frontend"],"latest_commit_sha":null,"homepage":"","language":"Roff","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/suvayu.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2022-11-14T00:41:29.000Z","updated_at":"2025-02-21T12:44:00.000Z","dependencies_parsed_at":"2024-09-12T14:24:08.208Z","dependency_job_id":null,"html_url":"https://github.com/suvayu/fzf_search","commit_stats":{"total_commits":43,"total_committers":2,"mean_commits":21.5,"dds":"0.046511627906976716","last_synced_commit":"ebae991e39454e8008d6f6f4d30bd38f30aa4ae4"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suvayu%2Ffzf_search","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suvayu%2Ffzf_search/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suvayu%2Ffzf_search/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/suvayu%2Ffzf_search/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/suvayu","download_url":"https://codeload.github.com/suvayu/fzf_search/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243733327,"owners_count":20339024,"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":["fzf","fzf-scripts","ripgrep","ripgrep-frontend"],"created_at":"2024-10-12T22:33:24.504Z","updated_at":"2026-01-02T22:19:42.636Z","avatar_url":"https://github.com/suvayu.png","language":"Roff","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ripgrep + FZF\n\n```\n$ fzf-search [PATH...]\n```\nSearch a source tree recursively with `rg` and `fzf`.\n\nWhen you are working in a large repository/working directory,\nsearching for blocks of text in hundreds of files can be difficult.\nThis FZF interface for Ripgrep addresses that by letting you narrow\ndown your search results recursively.  A search is restricted to the\nset of files with matches in the previous step.  At any point, you can\neasily switch between searching file contents or filtering file paths.\nHere is a mini screencast demonstrating some of these features.\n\n![screen cast of using fzf-search](./fzf-search-demo.gif)\n\n**PS:** You can access a cheat-sheet by pressing \u003ckbd\u003eF1\u003c/kbd\u003e at any point.\n\n## Keybindings\n\n- \u003ckbd\u003eF1\u003c/kbd\u003e help message\n- \u003ckbd\u003eC-s\u003c/kbd\u003e search source tree recursively\n- \u003ckbd\u003eC-f\u003c/kbd\u003e limit files to search\n- \u003ckbd\u003eRET\u003c/kbd\u003e - open in a pager (`bat` or `less`)\n- \u003ckbd\u003eM-RET\u003c/kbd\u003e - open in `$EDITOR`\n\n## Example commands\n\n- Find files to search in current directory/path(s):\n  ```shell\n  $ fzf-file [PATH...]\n  ```\n- Search the current directory/in paths:\n  ```shell\n  $ fzf-search [PATH...]\n  ```\n\nMore documentation on usage can be found in the [manual](./help.md).\n\n## Dependencies\n\n- [Ripgrep](https://github.com/BurntSushi/ripgrep/) or `rg` for search\n- [`fzf`](https://github.com/junegunn/fzf) for display \u0026 filtering UI\n- (optional) [`bat`](https://github.com/sharkdp/bat) for preview.\n  It's a `cat` clone with syntax highlighting support.  If it isn't\n  found in `$PATH`, `less` is used.\n- `man` to see the help message\n\n## Installation\n\nYou need to install the above dependencies using your platform's\npackage manager.  After that you have to make sure the scripts in this\nrepo are in your `$PATH`.  There are several ways you could achieve\nthis:\n\n1. Checkout this repo, and add it to your `$PATH`\n\n   ```shell\n   git checkout https://github.com/suvayu/fzf_search.git\n   export PATH=\"$PWD/fzf_search:$PATH\"\n   ```\n\n   To make this permanent, set this value of `$PATH` in your shell's\n   profile/rc file.  For Bash that would be `~/.bash_profile` or\n   `~/.bashrc`.\n\n2. Checkout this repo, and create symlinks to the scripts in a\n   directory that is present in your `$PATH`.  Say `~/bin` is in your\n   `$PATH`.\n\n   ```shell\n   git checkout https://github.com/suvayu/fzf_search.git\n   cd ~/bin\n   ln -s $OLDPWD/fzf_search/fzf-{search,file} .\n   ```\n\n2. Copy over the scripts (`fzf-{search,file}`) and `help.1` to a\n   directory in your `$PATH`.  Note that when copying the files you\n   also need to copy the help file to be able to see the help message.\n   This is because scripts try to find the help file in the same\n   directory.\n\nOut of the above methods, (2) is preferred if you already have a setup\nwhere you have a user directory in your `$PATH`, however if that's not\nthe case, (1) is a somewhat simpler alternative.  While (3) works, it\nis discouraged as it's difficult to update the scripts.\n\n### Running on NixOS\n\nIf you are on NixOS (or use the `nix` package manager independently),\nthe repo includes a flake recipe so that you can run the scripts with:\n```shell\nnix run github:suvayu/fzf_search#fzf-search\n```\nor\n```shell\nnix run github:suvayu/fzf_search#fzf-file\n```\n\n### Updating\n\nIf you have followed options (1) or (2) to install the scripts, you\nmay update by navigating to the git repository, and running `git\npull`.  If you opted for option (3) to install, you need to reinstall.\n\n### FAQ\n\n#### 1. I see characters like `^[[0m`, `^[[3m` in `fzf`, and file preview breaks\n\nFor some reason ANSI escape codes are not being interpreted by `fzf`\ncorrectly, that leads to incorrect file names, which breaks the file\npreview.  You can disable colour as a workaround.\n\n```shell\n  $ NOCOLOR=1 fzf-search [PATH...]\n```\n\n#### 2. Binary files are matching\n\nIf binary files are showing up in matches, you can ignore them as:\n\n```shell\n   $ NOBINARY=1 fzf-search [PATH...]\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuvayu%2Ffzf_search","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsuvayu%2Ffzf_search","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuvayu%2Ffzf_search/lists"}