fisher-search(1) -- Search Fisherman Index ========================================== ## SYNOPSIS fisher `search` [*name* or *url*]
fisher `search` [`--select`=*all*|*cache*|*remote*]
fisher `search` [`--field`=*name*|*url*|*info*|*tag*|*author*]
fisher `search` [`--`*field*=*match*]
fisher `search` [`--`*field*~`/`*regex*`/`]
fisher `search` [`--query`=*field*[`&&`,`||`]*field*...]
fisher `search` [`--and`] [`--or`] [`--quiet`] [`--help`]
## USAGE fisher `search` *plugin*
fisher `search` *owner/repo*
fisher `search` --field=*name* --select=all | column
fisher `search` --tag=tag1 --and --tag=tag2 ## DESCRIPTION Search the Fisherman index database. You can use a custom index file by setting `$fisher_index` to your preferred url or file. See `fisher help config` and `fisher`(7)#{`Index`}. A copy of the index is downloaded each time a search query happens, keeping the index up to date all the time. The index file consists of records separated by blank lines `'\n\n'` and each record consists of fields separated by a single line `'\n'`. ``` name url info | description tag1 tag2 ... author ``` See #{`Output`} for more information. ## OPTIONS * `-s` `--select`[=*all*|*cache*|*remote*]: Select the record source. --select=*cache* queries only local plugins, i.e., those inside `$fisher_cache`. --select=*remote* queries all plugins not in the cache, i.e, those available to install. --select=*all* queries everything. * `-f` `--field`=*name*|*url*|*info*|*tag*|*author*: Display only the given fields from the selected records. Use --*field* instead as a shortcut for `--field`=name. * --*field*[=*match*]: Filter the result set by *field*=*match*, where *field* can be one or more of `name`, `url`, `info`, `tag` or `author`. If *match* is not given, this is equivalent to `--select`=*field*. Use `!=` to negate the query. * --*field*[~`/`*regex*`/`]: Essentially the same as --*field*=*match*, but with Regular Expression support. --*field*~`/`*regex*`/` filters the result set using the given `/`*regex*`/`. For example, --name=`/`^*match*$`/` is the same as --*field*=*match* and --url~`/`oh-my-fish`/` selects only oh-my-fish plugins. Use `!~` to negate the query. * `-a` `--and`: Join query with a logical AND operator. * `-o` `--or`: Join query with a logical OR operator. This the default operator for each query operation. * `-Q` `--query`=*field*[`&&`,`||`]*field*...: Use a custom search expression. For example, --query='name~`/`[0-9]`/`||name~`/`^[xyz]`/`' selects all plugins that contain numbers in their name *or* begin with the characters *x*, *y* or *z*. * `-q` `--quiet`: Enable quiet mode. * `-h` `--search`: Show usage search. ## OUTPUT The default behavior is to print the result set to standard output in its original format. ``` fisher search shark ``` `...` ``` shark https://github.com/bucaran/shark Sparklines for your Fish chart tool bucaran ``` Search is optimized for parsing when using filters: `--name`, `--url`, `--info`, `--tags`, `--author` or `--field`=*name*|*url*|*info*|*tag*|*author*. ``` fisher search shark --name --url ``` `...` ``` shark;https://github.com/bucaran/shark ``` The result set above consists of single line `'\n'` separated records where each record consists of one or more of the given fields separated by a semicolon `';'`. ## EXAMPLES * Display all plugins by name and format into multiple columns. ``` fisher search --name | column ``` * Display all plugins by url, sans *https://github.com/* and format into multiple columns. ``` fisher search --field=url --select=all | sed 's|https://github.com/||' | column ``` * Display all remote plugins by name tagged as *a* or *b*. ``` fisher search --select=remote --name --tag=github --or --tag=tool ``` * Search plugins from a list of one or more urls and / or names and display their authors. ``` fisher search $urls $names --url ``` * Search all plugins in the cache whose name does not start with the letter `s`. ``` fisher search --select=cache --name~/^[^s]/ ``` ## SEE ALSO `fisher`(1)
`fisher`(7){`Index`}
`fisher help plugins`