Input & data sources
Skeleton — structure plus verified facts; full prose to be written.
Piped input
- When stdin is not a terminal, Matchmaker reads items from stdin (the default command is skipped).
input_separator(start.input_separator, absolute aliasn) chooses the character that separates items; the default config uses\0so filenames with spaces/newlines are preserved.skip_invalid_linescontrols whether lines that fail UTF-8 parsing are skipped (true) or raise an error (false).
Populating commands
start.commandruns when stdin is a terminal (or--no-readforces it).start.additional_commandsprovides extra commands that can be cycled through with theReloadNext/ReloadPrevactions.- When multiple commands exist,
MM_INDEXreports which one is active (0-indexed); setting_MM_INDEXin the environment selects one. - A per-command object form supports a custom
separatoroverridinginput_separatorfor that command.
Context lines
-C <N>(context) rolls N lines around each match into the item, so results show surrounding context and previews/templates can reference it.
Trailing arguments
- Arguments after
--are passed to the populating command and are also available to templates as{$0},{$1},{$n}(see Templates). - Warning: trailing arguments are ignored when input is piped.
Output
output_separator(string, aliasos) joins printed selections.output_template(aliasot/output) is the template used to print results; it is exclusive withon_accept.on_acceptruns a template as a command on accepted items.
To write
- Streaming/async feeding of huge inputs.
- Environment variables available to the populating command.
- Behavior when the command exits non-zero.
