https://github.com/SixArm/markline
markable line picker for stdin line input
https://github.com/SixArm/markline
Last synced: 4 months ago
JSON representation
markable line picker for stdin line input
- Host: GitHub
- URL: https://github.com/SixArm/markline
- Owner: SixArm
- Created: 2022-10-31T23:13:37.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-07T19:40:07.000Z (9 months ago)
- Last Synced: 2024-08-01T13:38:04.207Z (7 months ago)
- Language: Rust
- Size: 25.4 KB
- Stars: 5
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# markline: markable line picker from stdin to stdout
Example:
```sh
printf "%s\n%s\n%s\n" alpha bravo charlie > example.txt
cat example.txt | markline
```You should see each line with a a bullet character that you can edit,
and the line text:```txt
• alpha
• bravo
• charlie
```Move up and down in the list by typing arrow keys.
Mark any line by typing any alphanumeric character.
The character will replace the bullet.Mark as many lines as you want, such as:
```txt
1 alpha
2 bravo
3 charlie
```When you're done, type ENTER or ESC to finish.
The command outputs each line:
* the line's mark character
* a separator space
* the line's original text
## Example
Suppose you have a text file that is a list of tasks, one per line, and
you want to mark each line with "x" meaning done, or "o" meaning "todo".Then you can pipe the results to any other command, such as a filter,
that you can use to show just the tasks that are done.Run:
```sh
cat example.txt | markline | grep '^x'
```Mark each line with "x" or "o" such as:
```txt
x alpha
o bravo
x charlie
```Type ENTER or ESC to finish.
Output:
```txt
x alpha
x charlie
```## Install
Install markline as a typical Rust crate:
```sh
cargo install markline
```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 marker, 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
`checkline` that's the same kind of tool plus checkboxes:
`vipe` that can pipe in and out of `$EDITOR`:
`peco` simplistic interactive filtering tool:
`percol` adds interactive selection to the traditional pipe concept.
`canything` interactive grep tools:
`zaw` zsh-friendly interactive grep tool:
`fzf` interactive grep tool written in Go language.
## Settings
On some systems, you may need to set your localization environment variables.
Example:
```sh
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
* Program: markline
* Version: 1.1.3
* License: MIT OR BSD OR GPL-2.0 OR GPL-3.0
* Created: 2022-10-15T12:24:50Z
* Updated: 2024-06-07T17:43:21Z
* Website: https://github.com/sixarm/markline
* Contact: Joel Parker Henderson ([email protected])