A thin wrapper around cp
, to decouple the copy and paste steps.
I consider this to be a UX improvement because:
- Sometimes you know what you want to copy, but haven't yet thought about where you need to copy it. Decoupling into separate steps means less stuff to think about at once
- Many tools have been written to make navigating between directories faster (eg
zoxide
,fzf
,broot
). Using one of these to jump to your target directory is often easier than typing out either the relative or absolute path of the destination.
I recommend putting the following aliases in your shell config:
alias yy='yyp yank'
alias p='yyp put'
Then you can do
$ yy my_file.txt
Yanked /home/sullyj3/my_file.txt
Navigate to some other directory, and put:
$ p
cp -i /home/sullyj3/my_file.txt .
By default, -i
will be passed to cp
to prevent accidentally overwriting files. If the file to be copied is a directory, -r
will be used. Any flags passed to put
will be passed to cp
after -i
and -r
.
Make sure you have flakes enabled.
To try it, run
nix shell github:sullyj3/yyp
I recommend installing as a flake input to home-manager or nixos.
While I don't recommend it, you can also install to your profile with
nix profile install github:sullyj3/yyp
You can also just put src/yyp.sh
in your PATH and set it executable. Eg:
curl https://raw.githubusercontent.com/sullyj3/yyp/main/src/yyp.sh ~/.local/bin/yyp
chmod +x ~/.local/bin/yyp
Tests are written using the BATS testing framework. To run the tests, first install BATS. It's available in the devShell, so you can get it with nix develop
. Once installed, you can run the tests by executing the my_test.bats
file:
bats my_test.bats
This project is licensed under the MIT License. See the LICENSE file for more details.