GitHub - robbiev/numberwang: Easily copy file names from shell command output

GitHub

1 min read Original article ↗

What

Numbers any valid file path in stdin (one per line). Copies chosen file names to the clipboard.

Why

For example you want to undo some changes you made to a git project:

$ git st
## master
 M README.md
 M somwhere/in/a/deeply/nested/directory/program.go

You can't be bothered reaching for the mouse to copy this file name so you pipe the output to numberwang:

$ git st | nw
## master
{1}  M {README.md}
{2}  M {somwhere/in/a/deeply/nested/directory/program.go}

to clipboard: 

You now got prompted to choose file names to copy to the clipboard. You choose "2" (you can select multiple files by typing multiple numbers separated by a space).

$ git st | nw
## master
{1}  M {README.md}
{2}  M {somwhere/in/a/deeply/nested/directory/program.go}

to clipboard: 2
nw: wrote "somwhere/in/a/deeply/nested/directory/program.go " to clipboard

Now you can simply paste the file name(s) you selected when performing a checkout:

$ git checkout somwhere/in/a/deeply/nested/directory/program.go 

Usage with git

I recommend a git alias that preserves colored output, for example:

st = -c color.status=always status -sb

Or if you want to go all-in and always call numberwang:

snw = ! git -c color.status=always status -sb | nw

Other commands might have similar options to preserve color.