Skip to main content

⚙️ Select


A shell command that will display a selection list. It is similar to selecta, but uses curses library to do display, and when compared to fzf, the main difference is approximate matching instead of fuzzy matching.

It is written in Z shell and has its capabilities:

  • Patterns, allowing multi-term searching
  • Curses module
  • Approximate matching Ctrl-F

The file zsh-select can be copied to any bin directory. Zsh will serve as say Ruby, and zsh-select will be a regular program available in the system.

Pressing o will make elements uniqe. To search again after pressing enter, press /. Approximate matching mode is activated by Ctrl-F.

Zsh Select Preview

Install Zsh Select

The zsh-select will be available in interactive Zsh sessions only when using this method. Nevertheless, integration with Vim and other methods will work when Zsh is your main shell.

Simply copy file zsh-select to any bin directory such as /usr/local/bin.


There are a few environment variables that can be set to alter zsh-select behavior.

The values assigned below are the defaults:

export ZSHSELECT_BOLD="1"                   # The interface will be drawn in bold font. Use "0" for no bold
export ZSHSELECT_COLOR_PAIR="white/black" # Draw in white foreground, black background. Try e.g.: "white/green"
export ZSHSELECT_BORDER="0" # No border around interface, Use "1" for the border
export ZSHSELECT_ACTIVE_TEXT="reverse" # Mark current element with reversed text. Use "underline" for marking with underline
export ZSHSELECT_START_IN_SEARCH_MODE="1" # Starts Zsh Select with searching active. "0" will not invoke searching at the start.