终端下的复制,粘贴方法,以及跨系统网络粘贴板

148 views
Skip to first unread message

文平波

unread,
Apr 8, 2013, 3:31:59 PM4/8/13
to sh...@googlegroups.com
hi,all
这几天在研究如何在终端下,实现当前的command line和X Window的粘贴板共享问题。也就是要达到在终端下按^L能够把当前的命令行复制到x window的粘贴板上,按^V能够把x window的粘贴板内容append到当前command line的效果。

之前想到的解决办法是通过在bash里bind一个快捷键来实现(比如:bind -x '“\C-V”:xclip -o‘)。但是这样不能把内容复制到当前命令上,而只是在终端上打印出来而已。

尝试过通过编写bash complete函数来解决复制问题,但是必须在要复制的字符串前加特点的命令,然后按tab键来触发自动补全,把当前命令行复制到xclip里,脚本如下:
_clipcopy()
{
echo $COMP_LINE | xclip -i
COMPREPLY=“”
return 0
}
complete -F _clipcopy sxc
但这并没有达到之前想要的效果

readline的配置,好像并不支持执行shell命令,只支持内置的一些函数

虽然可以在inputrc文件里把key map换成vi模式,通过vi里的快捷键yy和\C-y来实现复制粘贴,但这并不能和x window的粘贴板结合在一起

不不知道之前是否有人研究过这一方面?或者现在已经有成功的解决方案?难道只能hack readline,监视缓存么?
//////////////////////////////////////////////////////////////
另外关于系统网络粘贴板,网上有很多实现,其中有一个synergy开源项目,能够支持linux/windows/mac,但只能共享纯文本的东西,如果复制图片,或者其他的富文本,效果就不是很好了。还有一个商业软件CrossClip,网站上宣传支持图片复制粘贴,但实际效果未知。
现在有没有在这一方面做的比较好的,支持富文本和图片复制粘贴的开源项目?

lilydjwg

unread,
Apr 8, 2013, 10:25:02 PM4/8/13
to sh...@googlegroups.com
从剪贴板通过键盘粘贴到命令行,可以使用 fcitx 输入法的剪贴板支持。如果你用 zsh 的话我也可以给你写出相应的函数。

网络剪贴板的话,如果只在 X Window 使用似乎非常容易解决的样子,大约也就百来行代码吧?

--
Gmail Web 界面真难用 :-(
Reply all
Reply to author
Forward
0 new messages