{"id":20162561,"url":"https://github.com/zdharma-continuum/zsh-select","last_synced_at":"2026-06-05T06:31:11.528Z","repository":{"id":103427563,"uuid":"425226240","full_name":"zdharma-continuum/zsh-select","owner":"zdharma-continuum","description":null,"archived":false,"fork":false,"pushed_at":"2023-04-16T04:42:59.000Z","size":33,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-08T00:09:21.763Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zdharma-continuum.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":"2021-11-06T11:26:36.000Z","updated_at":"2021-11-12T17:53:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"3115a153-4793-461d-b259-edbc3ed19ee7","html_url":"https://github.com/zdharma-continuum/zsh-select","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zdharma-continuum/zsh-select","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zdharma-continuum%2Fzsh-select","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zdharma-continuum%2Fzsh-select/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zdharma-continuum%2Fzsh-select/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zdharma-continuum%2Fzsh-select/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zdharma-continuum","download_url":"https://codeload.github.com/zdharma-continuum/zsh-select/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zdharma-continuum%2Fzsh-select/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33932048,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-05T02:00:06.157Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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-11-14T00:25:45.137Z","updated_at":"2026-06-05T06:31:11.499Z","avatar_url":"https://github.com/zdharma-continuum.png","language":"Shell","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=D6XDCHDSBDSDG"],"categories":[],"sub_categories":[],"readme":"[![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=D6XDCHDSBDSDG)\n\n## Introduction\n\nA shell command that will display selection list. It is similar to `selecta`, but uses curses library to do display, and\nwhen compared to `fzf`, the main difference is approximate matching instead of fuzzy matching. It is written in Zshell\nand has it's capabilities:\n\n- patterns, allowing multi-term searching\n- curses module\n- approximate matching (`Ctrl-F`)\n\nThe file `zsh-select` can be copied to any `bin` directory. `Zsh` will serve as say `Ruby`, and `zsh-select` will be a\nregular program available in system.\n\nPressing `o` will make elements uniqe. To search again after pressing enter, press `/`. Approximate matching mode is\nactivated by `Ctrl-F`.\n\nVideo: [asciinema](https://asciinema.org/a/48490). You can resize the video by pressing `Ctrl-+` or `Cmd-+`.\n\n[![asciicast](https://asciinema.org/a/48490.png)](https://asciinema.org/a/48490)\n\n## Installation\n\nSimply copy file `zsh-select` to any `bin` directory such as `/usr/local/bin`. The package is also available as plugin.\n`zsh-select` will be available in interactive `Zsh` sessions only when using this method. Nevertheless, integration with\n`Vim` and other uses will simply work when `Zsh` is your main shell. Also, plugin managers often allow easy updates.\n\n## Integration with Vim\n\nAdding following snippet to `vimrc` will provide `\\f` keyboard shortcut that will run `zsh-select` as file-selector.\nMulti-term searching and approximate matching (`Ctrl-F`) will be available. The snippet is based on code from `selecta`\ngithub page (MIT license):\n\n```vim\n\" Run a given vim command on the results of fuzzy selecting from a given shell\n\" command. See usage below.\nfunction! ZshSelectCommand(choice_command, zshselect_args, vim_command)\n  try\n    let selection = system(a:choice_command . \" | zsh-select \" . a:zshselect_args)\n  catch /Vim:Interrupt/\n    \" Swallow the ^C so that the redraw below happens; otherwise there will be\n    \" leftovers from zshselect on the screen\n    redraw!\n    return\n  endtry\n  redraw!\n  exec a:vim_command . \" \" . selection\nendfunction\n\n\" Find all files in all non-dot directories starting in the working directory.\n\" Fuzzy select one of those. Open the selected file with :e.\nnnoremap \u003cleader\u003ef :call ZshSelectCommand(\"find * -type f 2\u003e/dev/null\", \"\", \":e\")\u003ccr\u003e\n```\n\n## Configuring\n\nThere are a few environment variables that can be set to alter `Zsh-Select` behavior. Values assigned below are the\ndefaults:\n\n```zsh\nexport ZSHSELECT_BOLD=\"1\"                   # The interface will be drawn in bold font. Use \"0\" for no bold\nexport ZSHSELECT_COLOR_PAIR=\"white/black\"   # Draw in white foreground, black background. Try e.g.: \"white/green\"\nexport ZSHSELECT_BORDER=\"0\"                 # No border around interface, Use \"1\" for the border\nexport ZSHSELECT_ACTIVE_TEXT=\"reverse\"      # Mark current element with reversed text. Use \"underline\" for marking with underline\nexport ZSHSELECT_START_IN_SEARCH_MODE=\"1\"   # Starts Zsh-Select with searching active. \"0\" will not invoke searching at start.\n```\n\n## Use with plugin managers\n\n### [Zinit](https://github.com/zdharma-continuum/zinit)\n\nAdd `zinit load zdharma-continuum/zsh-select` to `.zshrc`. The plugin will be loaded next time you start `Zsh`. To\nupdate issue `zinit update zdharma-continuum/zsh-select` from command line.\n\n### Zgen\n\nAdd `zgen load zdharma-continuum/zsh-select` to `.zshrc` and issue a `zgen reset` (this assumes that there is a proper\n`zgen save` construct in `.zshrc`).\n\n### Antigen\n\nAdd `antigen bundle zdharma-continuum/zsh-select` to `.zshrc`. There also should be `antigen apply`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzdharma-continuum%2Fzsh-select","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzdharma-continuum%2Fzsh-select","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzdharma-continuum%2Fzsh-select/lists"}