1
0
Fork 0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
prezto/modules/clipboard/init.zsh

59 lines
1.2 KiB

#
# Integrates the zsh clipboard with the system clipboard.
#
# Authors:
# Nir Friedman <quicknir@gmail.com>
#
function cutbuffer {
zle .$WIDGET
if [[ "$OSTYPE" == darwin* ]]; then
echo $CUTBUFFER | pbcopy
elif [[ "$OSTYPE" == cygwin* ]]; then
echo $CUTBUFFER | tee > /dev/clipboard
elif (( $+commands[xclip] )); then
echo $CUTBUFFER | xclip -selection clipboard
elif (( $+commands[xsel] )); then
echo $CUTBUFFER | xsel --clipboard --input
fi
}
zle_cut_widgets=(
vi-backward-delete-char
vi-change
vi-change-eol
vi-change-whole-line
vi-delete
vi-delete-char
vi-kill-eol
vi-substitute
vi-yank
vi-yank-eol
)
for widget in $zle_cut_widgets; do
zle -N $widget cutbuffer
done
function putbuffer {
if [[ "$OSTYPE" == darwin* ]]; then
zle copy-region-as-kill "$(pbcopy)"
elif [[ "$OSTYPE" == cygwin* ]]; then
zle copy-region-as-kill "$(cat /dev/clipboard)"
elif (( $+commands[xclip] )); then
zle copy-region-as-kill "$(xclip -o -selection clipboard)"
elif (( $+commands[xsel] )); then
zle copy-region-as-kill "$(xsel --clipboard --output)"
fi
zle .$WIDGET
}
zle_put_widgets=(
vi-put-after
vi-put-before
)
for widget in $zle_put_widgets; do
zle -N $widget putbuffer
done