Tool for interactively selecting input lines
se(lect) line(s)
seline
is a command line tool for interactively selecting one (or more) lines from stdin
and passing them to stdout
. It is intended to be composed with other tools.
Via npm
npm install -g seline
Via yarn
yarn global add seline
Here are some example applications that I have been using
$ git branch | seline -m | xargs git branch -D
$ git branch --sort=-committerdate | grep -v '*' | seline | xargs git checkout
git branch | seline | xargs git log --oneline | seline -m | awk '{print $1}' | tail -r | xargs git cherry-pick
seline
can also be required and used programmatically. Results are returned as a promise.
seline(choices, options)
choices
required; an array of strings that are presented for selectionoptions
optional; a dict of configuration options
option | type | default | description |
---|---|---|---|
multiline |
boolean | false |
enable multiple line selection |
outputIndex |
boolean | false |
output line index instead of line |
hideNumbers |
boolean | false |
hide selection number prefix |
preserveOrder |
boolean | false |
output lines in order of selection |
compact |
boolean | false |
separate options by tabs instead of newlines |
skipBlanks |
boolean | false |
selection cursor skips empty lines |
skipChar |
char | null |
selection cursor skips line starting with char |
noColor |
boolean | false |
use extra characters to show state instead of color |
lockLines |
boolean | false |
prevent reordering lines with u and d |
const seline = require('seline');
async function main() {
const results = await seline(['a', 'b', 'c'], { multiline: true });
}