{"id":13559448,"url":"https://github.com/konradsz/igrep","last_synced_at":"2026-02-18T22:01:16.869Z","repository":{"id":41888999,"uuid":"240747715","full_name":"konradsz/igrep","owner":"konradsz","description":"Interactive Grep","archived":false,"fork":false,"pushed_at":"2026-01-02T21:50:21.000Z","size":1228,"stargazers_count":803,"open_issues_count":10,"forks_count":24,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-01-10T18:29:47.592Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/konradsz.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-02-15T16:25:25.000Z","updated_at":"2026-01-10T02:08:21.000Z","dependencies_parsed_at":"2024-04-14T20:44:04.754Z","dependency_job_id":"ae87402a-6170-4dfa-be18-50ce1c18c4b1","html_url":"https://github.com/konradsz/igrep","commit_stats":{"total_commits":165,"total_committers":11,"mean_commits":15.0,"dds":0.08484848484848484,"last_synced_commit":"cf3b81c3b178925c0afc9194bca28dc7ef34fcfd"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/konradsz/igrep","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/konradsz%2Figrep","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/konradsz%2Figrep/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/konradsz%2Figrep/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/konradsz%2Figrep/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/konradsz","download_url":"https://codeload.github.com/konradsz/igrep/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/konradsz%2Figrep/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29596329,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T20:59:56.587Z","status":"ssl_error","status_checked_at":"2026-02-18T20:58:41.434Z","response_time":162,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2024-08-01T13:00:23.325Z","updated_at":"2026-02-18T22:01:16.851Z","avatar_url":"https://github.com/konradsz.png","language":"Rust","funding_links":[],"categories":["Rust","Search","💻 Apps"],"sub_categories":["🚀 Productivity and Utilities"],"readme":"# igrep - Interactive Grep\nRuns [grep](https://crates.io/crates/grep) ([ripgrep's](https://github.com/BurntSushi/ripgrep/) library) in the background, allows interactively pick its results and open selected match in text editor of choice (vim by default).\n\n`igrep` supports macOS and Linux. Reportedly it works on Windows as well.\n\n\u003cimg src=\"./assets/v1_0_0.gif\"/\u003e\n\n## Usage\n`ig [OPTIONS] \u003cPATTERN|--type-list\u003e [PATHS]...`\n\n### Args\n```\n\u003cPATTERN\u003e    Regular expression used for searching.\n\u003cPATHS\u003e...   Files or directories to search. Directories are searched recursively.\n             If not specified, searching starts from current directory.\n```\n\n### Options\n```\n-., --hidden                    Search hidden files and directories. By default, hidden files and\n                                directories are skipped.\n    --editor \u003cEDITOR\u003e           Text editor used to open selected match.\n                                [possible values: check supported text editors section]\n    --context-viewer \u003cVIEWER\u003e   Context viewer position at startup [default: none]\n                                [possible values: none, vertical, horizontal]\n    --custom-command \u003cCOMMAND\u003e  Custom command used to open selected match.\n                                Must contain {file_name} and {line_number} tokens (check Custom Command section).\n-g, --glob \u003cGLOB\u003e               Include files and directories for searching that match the given glob.\n                                Multiple globs may be provided.\n-h, --help                      Print help information\n-i, --ignore-case               Searches case insensitively.\n-L, --follow                    Follow symbolic links while traversing directories\n-S, --smart-case                Searches case insensitively if the pattern is all lowercase.\n                                Search case sensitively otherwise.\n-t, --type \u003cTYPE_MATCHING\u003e      Only search files matching TYPE.\n                                Multiple types may be provided.\n-T, --type-not \u003cTYPE_NOT\u003e       Do not search files matching TYPE-NOT.\n                                Multiple types-not may be provided.\n    --theme \u003cTHEME\u003e             UI color theme [default: dark] [possible values: light, dark]\n    --type-list                 Show all supported file types and their corresponding globs.\n-V, --version                   Print version information.\n-w, --word-regexp               Only show matches surrounded by word boundaries\n-F, --fixed-strings             Exact matches with no regex. Useful when searching for a string full of delimiters.\n    --sort \u003cSORT_BY\u003e            Sort results by [path, modified, accessed, created], see ripgrep for details\n    --sortr \u003cSORT_BY_REVERSE\u003e   Sort results reverse by [path, modified, accessed, created], see ripgrep for details\n```\nNOTE: `ig` respects `ripgrep`'s [configuration file](https://github.com/BurntSushi/ripgrep/blob/master/GUIDE.md#configuration-file) if `RIPGREP_CONFIG_PATH` environment variable is set and reads all supported options from it.\n\n## Keybindings\n\u003c!-- The markers above and below the table are required for build script --\u003e\n\u003c!-- keybindings start --\u003e\n| Key                      | Action                                 |\n| ------------------------ | -------------------------------------- |\n| `q`, `Esc`, `Ctrl+c`     | Quit                                   |\n|                          |                                        |\n| `?`, `F1`                | Open/close the keymap popup            |\n| `Down`, `j`              | Scroll down in the keymap popup        |\n| `Up`, `k`                | Scroll up in the keymap popup          |\n| `Right`, `l`             | Scroll right in the keymap popup       |\n| `Left`, `h`              | Scroll left in the keymap popup        |\n|                          |                                        |\n| `Down`, `j`              | Select next match                      |\n| `Up`,`k`                 | Select previous match                  |\n| `Right`, `l`, `PageDown` | Select match in next file              |\n| `Left`, `h`, `PageUp`    | Select match in previous file          |\n| `gg`, `Home`             | Jump to the first match                |\n| `Shift-g`, `End`         | Jump to the last match                 |\n| `Enter`                  | Open current file                      |\n| `dd`, `Delete`           | Filter out selected match              |\n| `dw`                     | Filter out all matches in current file |\n| `v`                      | Toggle vertical context viewer         |\n| `s`                      | Toggle horizontal context viewer       |\n| `+`                      | Increase context viewer size           |\n| `-`                      | Decrease context viewer size           |\n| `F5`, `/`                | Open search pattern popup              |\n| `n`                      | Sort search results by name            |\n| `m`                      | Sort search results by time modified   |\n| `c`                      | Sort search results by time created    |\n| `a`                      | Sort search results by time accessed   |\n\u003c!-- keybindings end --\u003e\n\n## Supported text editors\n`igrep` supports Vim, Neovim, nano, VS Code (stable and insiders), Emacs, EmacsClient, Helix, SublimeText, Micro, Intellij, Goland, Pycharm and Less. If your beloved editor is missing on this list and you still want to use `igrep` please file an issue or use [custom command](#custom-command).\n\n## Specifying text editor\n### Builtin editors\nTo specify builtin editor, use one of the following (listed in order of their precedence):\n- `--editor` option,\n- `$IGREP_EDITOR` variable,\n- `$VISUAL` variable,\n- `$EDITOR` variable.\n\nHigher priority option overrides lower one. If neither of these options is set, vim is used as a default.\n\n### Custom Command\nUsers can provide their own command used to open selected match using `--custom-command` option. It must contain {file_name} and {line_number} tokens. Example command used to open file in Vim looks as follows:\n\n`--custom-command \"vim +{line_number} {file_name}\"`\n\nThe same argument can also be passed via the `$IGREP_CUSTOM_EDITOR` environment variable. Example:\n\n`IGREP_CUSTOM_EDITOR=\"vim +{line_number} {file_name}\"`\n\n## Installation\n### Prebuilt binaries\n`igrep` binaries can be downloaded from [GitHub](https://github.com/konradsz/igrep/releases).\n### Homebrew\n```zsh\nbrew install igrep\n```\n### Scoop\n```\nscoop install igrep\n```\n### Arch Linux\n```\npacman -S igrep\n```\n### Alpine Linux\n\n`igrep` is available for [Alpine Edge](https://pkgs.alpinelinux.org/packages?name=igrep\u0026branch=edge). It can be installed via [apk](https://wiki.alpinelinux.org/wiki/Alpine_Package_Keeper) after enabling the [testing repository](https://wiki.alpinelinux.org/wiki/Repositories).\n\n```\napk add igrep\n```\n\n### Build from source\nBuild and install from source using Rust toolchain by running: `cargo install igrep`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkonradsz%2Figrep","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkonradsz%2Figrep","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkonradsz%2Figrep/lists"}