Standalone Rust CLI for a tmux "flash copy" workflow inspired by flash.nvim and flash-copy.tmux.
Quickly copy text from a tmux pane by searching and selecting it with labeled keys.
- tmux with
display-popupsupport. - Clipboard support via tmux
set-buffer -w(OSC52-capable terminal).
From crates.io:
cargo install flash_tmuxFrom source:
git clone https://github.com/iovis/flash.tmux
cd flash.tmux
cargo install --path .Add a binding in ~/.tmux.conf:
bind-key F run-shell "flash_tmux"- Type to search (ASCII case-insensitive).
- Labels are lowercase; press a label to select.
- Lowercase: copy + paste.
- Uppercase: copy only.
- Tab: paste current match
- Enter: paste and send Enter.
- Space: paste and send Space.
-r,--reverse-label: Reverse label behavior.- Lowercase: copy only.
- Uppercase: copy + paste.
- Only the visible pane content can be matched.
- Matches are whitespace-delimited tokens.
- Substring matches within a token are allowed.
- If a token is wrapped by
(),[],{}, quotes, or backticks, and the match is inside those wrappers, the outer wrapper is stripped before copying/pasting.- Example:
(/home/user/project)→/home/user/project
- Example:
Standalone benchmark binaries live in src/bin/ (on the bench branch) and
are intended for comparison with the C and Go sibling implementations.
Build release binaries and verify checksum parity:
just release
just checksumsExpected checksum output:
1787
4278
6728401868494091241
Run Rust-only benchmarks with hyperfine:
just bench-search
just bench-incremental
just bench-render
just benchThe benchmark recipes use ../flash-bench-content.txt by default and accept
optional copies, iterations, and runs parameters. For example:
just bench-search 500 50 10