帮酷LOGO
0 0 评论
  • 显示原文与译文双语对照的内容
文章标签:命令行  Comma  COMM  COM  剪贴板  CLIP  acc  

问题:

为了使某些任务更高效,我正在构建一个 命令行 工具。 我需要能够将内容写入剪贴板,但由于某些原因,它无法为我工作。

我尝试安装xclip和 xsel,但两者都具有相同的行为: 他们可以读/写剪贴板,但我不能从主要的Ubuntu GUI访问它。

我也在终端上尝试过。


echo"hello" | xclip



那么如果 Ctrl+Shift+V,我得到我的原始剪贴板条目,而不是"打招呼"。 但是,如果我尝试从xclip抓取内容,它可以很好地工作。

主要目标是将内容 pastable get Firefox 或者其他基于gui的程序。

任何帮助都是值得感激的 !

谢谢


回答 1:

X: ) 在默认情况下,一个 xclip 将文本复制到"选择缓冲区"中,通常只用鼠标选择一些文本。 这个缓冲区与你可以用Ctrl-Shift-V粘贴的缓冲区是分开的。

try


echo"hello" | xclip -selection clipboard



另请参阅

 
man xclip



 

有关外部参照的详细信息,请参见


回答 2:

I windowmaker utilities utilities utilities utilities utilities utilities,但是最近Linux版本( 或者X 版本) 似乎已经破坏了它们- 我怀疑安全性已经 tightened,而且还没有更新到 MATCH。 比如 可以执行以下操作:


echo fred | wxcopy | tr"a-z""A-Z" | wxpaste



要得到输出 FRED。 ( 这是一个设计的例子,因为你没有最终的wxpaste,但我认为它能够达到你所能达到的风味。)

但是,你可以使用"xcb"包实现相同的效果,它非常轻量级,也提供了 8个剪贴板的( 汇总) 视觉显示。

我写了一对 shell 脚本 wCopy/wpaste年前,使 wxcopy/wxpaste更加令人满意。 我今晚更新了它们以使用 wxcopy/wxpaste或者 xcb。 这使得它们比需要更复杂,但我将它们粘贴在这里- 希望它们不会太长。

这里是 wCopy:


#!/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



这里是 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



我也会为脚本编写手册页,但是你可以通过google搜索和 wpaste.1x 来找到他们


回答 3:

为了让自己更容易,我为 xclip 创建了别名,以便模拟 pbcopypbpaste 中的功能。


sudo apt-get install xclip -y



然后编辑你的~/.bashrc 以添加别名

 
nano ~/.bashrc



 

添加这些行


alias pbcopy='xclip -selection clipboard'


alias pbpaste='xclip -selection clipboard -o'



保存并退出,然后打开一个新的shell 或者运行 source ~/.bashrc 以使用别名

我的博客文章包含详细信息。




文章标签:COM  COMM  acc  Comma  命令行  CLIP  剪贴板  

Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语