12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- # System clipboard integration
- #
- # This file has support for doing system clipboard copy and paste operations
- # from the command line in a generic cross-platform fashion.
- #
- # On OS X and Windows, the main system clipboard or "pasteboard" is used. On other
- # Unix-like OSes, this considers the X Windows CLIPBOARD selection to be the
- # "system clipboard", and the X Windows `xclip` command must be installed.
- # clipcopy - Copy data to clipboard
- #
- # Usage:
- #
- # <command> | clipcopy - copies stdin to clipboard
- #
- # clipcopy <file> - copies a file's contents to clipboard
- #
- function clipcopy() {
- emulate -L zsh
- local file=$1
- if [[ $OSTYPE == darwin* ]]; then
- if [[ -z $file ]]; then
- pbcopy
- else
- cat $file | pbcopy
- fi
- elif [[ $OSTYPE == cygwin* ]]; then
- if [[ -z $file ]]; then
- cat > /dev/clipboard
- else
- cat $file > /dev/clipboard
- fi
- else
- which xclip &>/dev/null
- if [[ $? != 0 ]]; then
- print "clipcopy: Platform $OSTYPE not supported or xclip not installed" >&2
- return 1
- fi
- if [[ -z $file ]]; then
- xclip -in -selection clipboard
- else
- xclip -in -selection clipboard $file
- fi
- fi
- }
- # clippaste - "Paste" data from clipboard to stdout
- #
- # Usage:
- #
- # clippaste - writes clipboard's contents to stdout
- #
- function clippaste() {
- emulate -L zsh
- if [[ $OSTYPE == darwin* ]]; then
- pbpaste
- elif [[ $OSTYPE == cygwin* ]]; then
- cat /dev/clipboard
- else
- which xclip &>/dev/null
- if [[ $? != 0 ]]; then
- print "clipcopy: Platform $OSTYPE not supported or xclip not installed" >&2
- return 1
- fi
- xclip -out -selection clipboard
- fi
- }
|