{"id":26326286,"url":"https://github.com/harehare/igrepr","last_synced_at":"2025-09-22T23:03:07.729Z","repository":{"id":263423626,"uuid":"889453916","full_name":"harehare/igrepr","owner":"harehare","description":"igrepr is a line-oriented search tool, allowing interactively select, filter and replace the results of grep.","archived":false,"fork":false,"pushed_at":"2025-03-03T03:09:28.000Z","size":607,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-05T09:46:11.605Z","etag":null,"topics":["grep"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/harehare.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-11-16T12:32:02.000Z","updated_at":"2024-12-02T13:25:33.000Z","dependencies_parsed_at":"2024-11-18T14:13:57.891Z","dependency_job_id":"1dee320d-c9c2-41fd-81f4-4e79610cbdf0","html_url":"https://github.com/harehare/igrepr","commit_stats":null,"previous_names":["harehare/igrepr"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harehare%2Figrepr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harehare%2Figrepr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harehare%2Figrepr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harehare%2Figrepr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/harehare","download_url":"https://codeload.github.com/harehare/igrepr/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243783594,"owners_count":20347404,"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":["grep"],"created_at":"2025-03-15T19:36:18.985Z","updated_at":"2025-09-22T23:03:02.665Z","avatar_url":"https://github.com/harehare.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# igrepr - Interactive Grep Result\n\nigrepr is a line-oriented search tool, allowing interactively select, filter and replace the results of grep.\n\n![image](images/igr.gif)\n\n## Installation\n\n```bash\ncargo install --git https://github.com/harehare/igrepr.git\n```\n\n## Features\n\n- Open the selected line in any text editor (default is vim).\n- One or more search, filter, or transform commands separated by a pipe (|) can be applied to the search results.\n\n## Usage\n\nigr [OPTIONS] [QUERY]\n\n```bash\n$ igr 'line.invert_match(let) | cli | tui | ignore_case(color) | upper_case()\n```\n\n## Options\n\n```\nUsage: igr [OPTIONS] [QUERY]\n\nArguments:\n  [QUERY]\n\nOptions:\n  -A, --after-context \u003cAFTER_CONTEXT\u003e\n          Show lines before each match\n  -B, --before-context \u003cBEFORE_CONTEXT\u003e\n          Show lines before each match\n  -C, --context \u003cCONTEXT\u003e\n          Show lines before and after each match\n      --custom-command \u003cCUSTOM_COMMAND\u003e\n          Custom command used to open selected line. e.g.: --custom_command \"code -g {file_path}:{line_no} [env: IGR_CUSTOM_COMMAND=]\n      --context-separator \u003cCONTEXT_SEPARATOR\u003e\n          The string used to separate [default: --]\n  -c, --count\n          Only print the count of individual match lines for each file\n      --count-matches\n          Only print the count of individual matches for each file\n  -d, --disable-tui\n          Disable tui\n      --editor \u003cEDITOR\u003e\n          Text editor used to open selected line [default: vim] [possible values: github, emacs, intellij, less, neovim, nano, vim, vscode]\n  -., --hidden\n          Search hidden files and directory\n      --hide-help\n          Hide Help\n      --exclude-path \u003cEXCLUDE_PATH\u003e\n          If specified, it excludes files or directories matching the given filename pattern from the search [env: IGR_EXCLUDE_PATH=]\n      --max-depth \u003cMAX_DEPTH\u003e\n          The maximum depth to recurse\n      --no-git-ignore\n          Don't respect .gitignore files\n  -N, --no-file-name\n          Never print the file path with the matched lines\n      --no-line-no\n          Never print the line number with the matched lines\n      --no-color\n          Not colored the output results\n      --no-icon\n          Not display icons\n  -r, --replace\n          Perform replacements if disable_tui is true\n      --threads \u003cTHREADS\u003e\n          Number of grep worker threads to use\n      --theme \u003cTHEME\u003e\n          Specify a theme [default: dark] [possible values: dark, light]\n  -q, --quiet\n          Do not output matched lines. instead, exit with status 0 when there is a match and with non-zero status when there isn’t\n      --vimgrep\n          Specifies whether all matched results are returned, including row and column numbers\n  -p, --path \u003cPATH\u003e\n          Searches for specified files and directories\n  -h, --help\n          Print help\n  -V, --version\n          Print version\n```\n\n## Keybindings\n\n| Key        | Action            |\n| ---------- | ----------------- |\n| `Tab`      | Select command    |\n| `Ctrl + c` | Quit              |\n| `Ctrl + n` | Copy result       |\n| `Ctrl + y` | Copy command      |\n| `Ctrl + v` | Show file preview |\n| `Ctrl + e` | Replace all       |\n\n## Filter and Functions\n\n| Command                 | Exapmle                         | Description                                                                                                                 |\n| ----------------------- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |\n| camel_case              | camel_case()                    | Convert to a string with the separators denoted by having the next letter capitalised.                                      |\n| constant                | constant()                      | Convert to an upper case, underscore separated string.                                                                      |\n| contains                | contains()                      | Determines if the specified string is contains.                                                                             |\n| delete                  | delete(index, index)            | Delete a string in the specified range.                                                                                     |\n| ends_with               | ends_with(string)               | Determines if the string ends with a character from this string.                                                            |\n| insert                  | insert(index, string)           | Inserts a string at the specified position.                                                                                 |\n| invert_match            | invert_match(string)            | Select non-matching.                                                                                                        |\n| invert_match_regex      | invert_match_regex(string)      | Select lines that do not match the regular expression.                                                                      |\n| ignore_case             | ignore_case(string)             | Search without case sensitivity.                                                                                            |\n| kebab_case              | kebab_case()                    | Convert to a lower case, dash separated string.                                                                             |\n| line.contains           | line.contains(string)           | Determine if the line contains the specified string.                                                                        |\n| line.match_regex        | line.match_regex(string)        | Searches for lines matching a regular expression                                                                            |\n| line.starts_with        | line.starts_with(string)        | Searches for lines starting with a specified character.                                                                     |\n| line.ends_with          | line.ends_with(string)          | Searches for lines ending with the specified character.                                                                     |\n| line.invert_match       | line.invert_match(string)       | Select non-matching lines.                                                                                                  |\n| line.invert_match_regex | line.invert_match_regex(string) | Select lines that do not match the regular expression.                                                                      |\n| line.bytelength         | line.bytelength() \u003e 10          | Filter by the number of bytes in a line.                                                                                    |\n| line.length             | line.length() \u003e 10              | Filter by the specified number of characters in a line.                                                                     |\n| lower_case              | lower_case()                    | Convert to a string in lower case.                                                                                          |\n| number                  | number() \u003e 10                   | Search for numbers.                                                                                                         |\n| regex                   | regex(regex_string)             | Search by regular expression.                                                                                               |\n| replace                 | replace(string, replacement)    | Returns the new string replaced by the substitution.                                                                        |\n| starts_with             | starts_with(string)             | Determines if the string starts with a character from this string.                                                          |\n| snake_case              | snake_case()                    | Convert to a lower case, underscore separated.                                                                              |\n| trim_end                | trim_end()                      | Removes whitespace from the end of this string.                                                                             |\n| trim_start              | trim_start()                    | Removes whitespace from the start of this string.                                                                           |\n| trim                    | trim()                          | Removes whitespace from both ends of this string.                                                                           |\n| upper_case              | upper_case()                    | Convert to a string in upper case.                                                                                          |\n| upper_camel_case        | upper_camel_case()              | Convert to a string with the separators denoted by having the next letter capitalised with the first character upper cased. |\n| upper_kebab_case        | upper_kebab_case()              | Convert to a lower case, dash separated string with the first character upper cased.                                        |\n| upper_snake_case        | upper_snake_case()              | Convert to a lower case, underscore separated with the first character upper cased.                                         |\n| whole_word              | whole_word(string)              | Search by word.                                                                                                             |\n\n## License\n\n[MIT](http://opensource.org/licenses/MIT)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharehare%2Figrepr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fharehare%2Figrepr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharehare%2Figrepr/lists"}