4 stable releases

1.1.3 Jun 7, 2024
1.1.1 Oct 31, 2022
1.0.0 Oct 17, 2022

#71 in Text editors

MIT OR Apache-2.0 OR GPL-2.0 OR GPL-3.0

14KB
95 lines

checkline: checkbox line picker from stdin to stdout

Example:

printf "%s\n%s\n%s\n" alpha bravo charlie > example.txt
cat example.txt | checkline

You should see each line with a checkbox and text:

[ ] alpha
[ ] bravo
[ ] charlie

Move up and down in the list by typing arrow keys.

Check or uncheck any checkbox by typing space or return, such as:

[x] alpha
[ ] bravo
[x] charlie

Check each line that you want, then type ESC to finish.

The command outputs each line that you checked:

alpha
charlie

Install

Install checkline as a typical Rust crate:

cargo install checkline

If people want other ways, such as with package managers, we welcome help to create these ways.

Purpose

The purpose of this command is a simple picker, that is easy to use, and that work wells in on the command line such as within a pipe.

The purpose isn't intended to handle very long lines, or very long inputs.

Projects with similarities

markline that's the same kind of tool plus markers: https://github.com/sixarm/markline

vipe that can pipe in and out of $EDITOR: https://github.com/juliangruber/vipe

peco simplistic interactive filtering tool: https://github.com/peco/peco

percol adds interactive selection to the traditional pipe concept. https://github.com/mooz/percol

canything interactive grep tools: https://github.com/keiji0/canything

zaw zsh-friendly interactive grep tool: https://github.com/zsh-users/zaw

fzf interactive grep tool written in Go language. https://github.com/junegunn/fzf

Settings

On some systems, you may need to set your localization environment variables.

Example:

export LC_COLLATE="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
export LC_MESSAGES="en_US.UTF-8"
export LC_MONETARY="en_US.UTF-8"
export LC_NUMERIC="en_US.UTF-8"
export LC_TIME="en_US.UTF-8"
export LC_ALL="en_US.UTF-8"

Feedback

We welcome constructive criticism and ideas for improvements.

Tracking

Dependencies

~11–22MB
~318K SLoC