71 lines
1.2 KiB
Bash
Executable file
71 lines
1.2 KiB
Bash
Executable file
typeset -a __yank_buffer __cut_buffer
|
|
fyank() {
|
|
__yank_buffer=()
|
|
for i in "$@"; do
|
|
__yank_buffer+=("${i:a}")
|
|
done
|
|
}
|
|
|
|
fcut() {
|
|
__cut_buffer=()
|
|
for i in "$@"; do
|
|
__cut_buffer+=("${i:a}")
|
|
done
|
|
}
|
|
|
|
fyankadd() {
|
|
for i in "$@"; do
|
|
__yank_buffer+=("${i:a}")
|
|
done
|
|
}
|
|
|
|
fcutadd() {
|
|
for i in "$@"; do
|
|
__cut_buffer+=("${i:a}")
|
|
done
|
|
}
|
|
|
|
fpasteclear() {
|
|
__yank_buffer=()
|
|
__cut_buffer=()
|
|
}
|
|
|
|
fpastelist() {
|
|
if [[ -n $__yank_buffer ]]; then
|
|
echo "Copying ${#__yank_buffer[@]} files:"
|
|
printf " %s\n" ${__yank_buffer[@]}
|
|
fi
|
|
if [[ -n $__cut_buffer ]]; then
|
|
echo "Moving ${#__cut_buffer[@]} files"
|
|
printf " %s\n" ${__cut_buffer[@]}
|
|
fi
|
|
}
|
|
|
|
fpaste() {
|
|
if [[ -n $__yank_buffer ]]; then
|
|
echo "Copying ${#__yank_buffer[@]} files"
|
|
fi
|
|
if [[ -n $__cut_buffer ]]; then
|
|
echo "Moving ${#__cut_buffer[@]} files"
|
|
fi
|
|
if [[ -n $__cut_buffer || -n $__yank_buffer ]]; then
|
|
echo -n "Continue? [y/N] "
|
|
read -q || return
|
|
else
|
|
echo "Error: No files to paste. Use fyank or fcut first"
|
|
return 1
|
|
fi
|
|
|
|
local target=${1:-$PWD}
|
|
for file in "${__yank_buffer[@]}"; do
|
|
cp -r "$file" "$target"
|
|
done
|
|
for file in "${__cut_buffer[@]}"; do
|
|
mv "$file" "$target"
|
|
done
|
|
|
|
fpasteclear
|
|
}
|
|
|
|
# vim: set ft=zsh:
|