LinuxCommandLibrary

skim

Fuzzy find items in lists for selection

SYNOPSIS

skim [options]

PARAMETERS

--extended
    Enable extended search mode. (Alias for --algo=extended)

--algo=TYPE
    Specify the search algorithm (fuzzy, extended, regex)

--bind=KEYBINDS
    Define custom key bindings. Example: --bind 'ctrl-n:down,ctrl-p:up'

--expect=KEYS
    Comma-separated list of keys to complete the selection (e.g., enter,ctrl-j). Prints the key upon selection. It is necessary to bind a key to action 'accept'.

--height=HEIGHT
    Specify the height of the skim window (e.g., 40%, 500).

--layout=LAYOUT
    Specify the layout (default, reverse, bottom).

--multi
    Enable multi-selection.

--no-height
    Disable dynamic height calculation.

--prompt=PROMPT
    Set prompt string.

--query=QUERY
    Set initial search query.

--select-1
    Select the first item if there is only one.

--delimiter=DELIMITER
    Use DELIMITER to split input into fields

DESCRIPTION

skim is a general-purpose interactive fuzzy finder. It reads a list of items from standard input and allows the user to interactively filter them down to a smaller set, which is then written to standard output. It is designed for speed and can handle large lists efficiently. Skim supports various input formats, advanced search strategies (such as multiple patterns and exact matching), and customization of the user interface. It is commonly used in scripting environments, command-line workflows, and as a replacement for or enhancement to commands like `find` and `grep`. The primary goal of skim is to provide a fast and intuitive way to select items from a potentially large list.
Skim's fuzzy matching algorithm prioritizes results that contain all the search terms, even if they are not contiguous, which makes it effective for finding items even when the user only remembers fragments of the desired item's name or content.

EXIT STATUS

skim returns an exit status of 0 if the user selects an item or items. It returns 1 if no items were selected or if an error occurred. If `--expect` option is specified and a key is pressed during selection, the exit status will be the ASCII value of the key.

HISTORY

Skim is a relatively modern tool developed to address the need for a fast, interactive fuzzy finder that could handle large volumes of data efficiently. Its development was driven by frustrations with existing tools that struggled with performance or offered less intuitive user experiences. Its usage has increased significantly among developers and system administrators who rely heavily on command-line tools for daily tasks. As such it offers advanced customization options via command line arguments and a configuration file.

SEE ALSO

fzf(1), grep(1), find(1)

Copied to clipboard