Pencere yapımcısından wxcopy ve wxpaste yardımcı programlarını kullanıyordum, ancak son Linux sürümleri (veya X sürümleri) onları kırmış gibi görünüyor - Güvenliğin sıkıldığından ve eşleşecek şekilde güncellenmediğinden şüpheleniyorum. Örneğin;
echo fred | wxcopy | tr "a-z" "A-Z" | wxpaste
FRED çıktısını almak için. (Bu, nihai wxpaste olmadan aynı şeyi elde edeceğiniz için bu bir örnek, ancak bence elde edebileceğinizin lezzetini veriyor.)
Ancak, aynı efekti, inanılmaz derecede hafif olan ve aynı zamanda 8 panonun küçük (özetlenmiş) görsel görüntüsünü sağlayan "xcb" paketini kullanarak da elde edebilirsiniz.
Ben wxcopy / wxpaste benim zevkime biraz daha hoş hale getirmek için yıllar önce wcopy / wpaste bir çift kabuk komut dosyaları yazdım. Onları wxcopy / wxpaste veya xcb ile çalışacak şekilde güncelledim. Bu onları olması gerekenden biraz daha karmaşık hale getirir, ancak onları buraya yapıştırırım - umarım bu forum için çok uzun değildirler.
İşte kopya:
#!/bin/sh
#
# Provide some enhancements to the wxcopy command, which copies standard input
# to an X11 clipboard text buffer.
#
# Allow copying from stdin to any of the cutbuffers. Note that they are
# indexed counting from 0.
#
# Author: Luke Kendall
#
if [ `uname -s` = "Darwin" ]
then
WXCOPY=pbcopy
WXPASTE=pbpaste
else
WXCOPY=wxcopy
WXPASTE=wxpaste
BUFSPEC="-cutbuffer"
xcb -p 0 > /tmp/wc$$
if echo "fred$$" | wxcopy -cutbuffer 0 && [ `wxpaste` = "fred$$" ]
then
: # Great, they're actually working. Not common on modern Linuxes.
echo "working" > $HOME/.wcopyok
else
rm -f $HOME/.wcopyok
WXCOPY="xcb -s"
WXPASTE="xcb -p"
BUFSPEC=
fi
xcb -s 0 < /tmp/wc$$
fi
unset WXARGS
if [ $# = 0 ]
then
$WXCOPY ${WXCOPY_DEFS:-0}
else
MYNAME=`basename $0`
USAGE="usage: $MYNAME [ [0-9]... ] [$WXCOPY's args]"
numlist=true
for n
do
if $numlist && expr "x$n" : 'x[0-9][0-9]*$' > /dev/null
then
NUMARGS="$NUMARGS $n"
else
numlist=false
if [ "x$n" = "x-h" ]
then
echo "$USAGE" >&2
exit 0
else
WXARGS="$WXARGS $n"
fi
fi
done
set - $NUMARGS
$WXCOPY $WXCOPY_DEFS $WXARGS $BUFSPEC $1
ORIG="$1"
shift
for n
do
$WXPASTE $BUFSPEC $ORIG | $WXCOPY $WXCOPY_DEFS $WXARGS $BUFSPEC $n
done
fi
Ve işte wpaste:
#!/bin/sh
#
# Provide some enhancements to the wxpaste command, which pastes from X11
# clipboard text buffers to standard output.
#
# Allow pasting to stdout from any of the cutbuffers. Note that they are
# indexed counting from 0.
#
# Author: Luke Kendall
#
if [ `uname -s` = "Darwin" ]
then
WXCOPY=pbcopy
WXPASTE=pbpaste
else
WXCOPY=wxcopy
WXPASTE=wxpaste
BUFSPEC="-cutbuffer"
if [ -s $HOME/.wcopyok ]
then
: # Great, they're actually working. Not common on modern Linuxes.
else
WXCOPY="xcb -s"
WXPASTE="xcb -p"
BUFSPEC=
fi
fi
if [ $# = 0 ]
then
$WXPASTE ${WXPASTE_DEFS:-0}
else
MYNAME=`basename $0`
USAGE="usage: $MYNAME [ [0-9]... ] [$WXPASTE's args]"
for n
do
if expr "x$n" : 'x[0-9][0-9]*$' > /dev/null
then
NUMARGS="$NUMARGS $n"
elif [ "x$n" = "x-h" ]
then
echo "$USAGE" >&2
exit 0
else
WXARGS="$WXARGS $n"
fi
done
set - $NUMARGS
: echo "Num args: $#"
for n
do
: echo "Doing: $WXPASTE $WXPASTE_DEFS $WXARGS $BUFSPEC $n"
$WXPASTE $WXPASTE_DEFS $WXARGS $BUFSPEC $n
done
fi
Eğer ilgilenen varsa, ben de scriptler için man sayfaları yazdım - ama muhtemelen wcopy.1x ve wpaste.1x googling onları bulabilirsiniz (hala geçerli).
xclip -sel clip
. Şahsen bunu her zaman kullanıyorum