#1 楼
如果您安装了X,则可以通过以下方式尝试xsel:alias pbcopy='xsel --clipboard --input'
alias pbpaste='xsel --clipboard --output'
或使用xclip:
alias pbcopy='xclip -selection clipboard'
alias pbpaste='xclip -selection clipboard -o'
现在您可以使用它们了:
echo 'go to my clipboard' | pbcopy
当我没有XI时,可以使用GNU Screen功能在使用键盘的会话中打开的外壳之间进行复制
要复制:
Ctrl-a -> Esc -> go to wanted position * -> Space (to begin selecting) -> press k to go forward mark text -> Enter
要粘贴:
Ctrl-a + ]
*运动是通过vim进行的,例如键绑定(j,k,l和m)。
评论
谢谢,这正是我想要的信息。现在我想知道是否有办法让Screen允许我使用Emacs命令选择要复制的区域...
–诺亚·萨斯曼(Noah Sussman)
2011-12-31 16:58
xsel:无法打开显示:(空):设备的不适当的ioctl
–itsazzad
15年12月24日在10:16
我通过安装Xming并设置DISPLAY =:0解决了Windows上的“无法打开显示”问题
–斯科特瓦尔德
17年12月25日在4:49
对于tmux用户,它更像是Ctrl-b,[->转到位置->空格->选择文本->通过Ctrl-b输入并粘贴,]
– elquimista
18-10-14在6:13
只要有可能(当然,这是永久性的),与其在配置文件中使用别名来使名称空间复杂化,不如在/ bin /中为此创建一个基本脚本会更好。特别是如果您在macOS和linux计算机之间共享您的配置文件。
–本杰明·R
19年1月17日在17:49
#2 楼
将这样的脚本pbcopy放入bin文件夹中:#!/bin/bash
xclip -i -sel c -f |xclip -i -sel p
这会将STDIN放入选择缓冲区和剪贴板:
echo Hello world |pbcopy
评论
为什么需要猫?在这种情况下,它不会只是将stdin重定向到stdout,从而导致对猫的滥用吗?还是我错过了什么?
–霍尔特纳
15年5月21日在7:53
没错,这看起来像是对猫的无用虐待:-)
– Erik
15年5月25日在10:44
如果您(像我一样)想知道神秘的“没用的猫”在哪里,那么它已被编辑删除。 NTS:如果注释令人困惑,请查看历史记录^^'
– yaitloutou
17年1月31日在16:40
使用后如何粘贴内容?仅使用xclip -o吗?或者,还有更好的方法?
– n1k31t4
17年5月4日在5:23
@ n1k31t4我所做的是使用xclip -sel c -o在/ bin / pbpaste处创建了等效脚本。
–本杰明·R
19年1月17日在17:53
#3 楼
扩展@Erik和@xpixelz的解决方案;这两个脚本在两种平台上均应适用:pbcopy:
#!/bin/bash
__IS_MAC=${__IS_MAC:-$(test $(uname -s) == "Darwin" && echo 'true')}
if [ -n "${__IS_MAC}" ]; then
cat | /usr/bin/pbcopy
else
# copy to selection buffer AND clipboard
cat | xclip -i -sel c -f | xclip -i -sel p
fi
pbpaste:
#!/bin/bash
__IS_MAC=${__IS_MAC:-$(test $(uname -s) == "Darwin" && echo 'true')}
if [ -n "${__IS_MAC}" ]; then
/usr/bin/pbpaste
else
xclip -selection clipboard -o
fi
评论
但是,为什么还要在本机用户区中的OS X上使用此脚本呢?
–霍尔特纳
2015年5月21日在8:02
*作为类似功能的参考,*跨平台点文件:github.com/westurner/dotfiles/blob/develop/scripts/pbcopy
–韦斯·特纳
15年5月27日在17:41
仍然是猫的虐待,为什么不检查xclip是否存在并分配别名(如果存在)?或检查是否存在pbpaste二进制文件也是一种选择。检查uname似乎是解决该问题的一种奇怪方法。
–霍尔特纳
15年5月29日在15:19
@Hultner“检查uname似乎是解决问题的一种奇怪方法”,您也可以优先检查二进制文件,以例外地使用$ {a:-$ {b:-$ {c:+ $ {d} }}}和某些类型的-P /具有变量分配和/ bin / test execs。
–韦斯·特纳
2015年12月13日在20:16
#4 楼
此答案是指Windows的Linux子系统。简短的答案:就像使用
clip.exe
一样使用pbcopy
,以便在Windows剪贴板上放置东西。这是魔法。 bash或Ubuntu bash终端中的示例echo "Hello Windows" | clip.exe
,然后在Windows程序中为“ ctrl-v”。 更多上下文:
在上面的评论中,我提到,当在Windows上使用Xming启用此功能时,必须设置DISPLAY变量(
export DISPLAY=:0
,在许多情况下xsel
和xclip
解决方案工作之前)。令人发指的是,该解决方案以一种不可靠,随机的方式工作-从Linux粘贴到Windows时,按ctrl-v
1至10次会导致粘贴剪贴板(一次)(这是在Windows 10 Surface Book 2上)。不要浪费时间,请使用clip.exe
。 注意:不要忘记
.exe
。否则,Ubuntu bash会建议您安装Linux软件包geomview
,这不是您想要的。#5 楼
在WSL2中,您有clipcopy
和clippaste
等效于pbcopy
和pbpaste
。
评论
...对于那些不知道什么是pbcopy的人,这是手册页developer.apple.com/library/mac/#documentation/Darwin/Reference / ...ClipIt(和类似的剪贴板管理器)是对此有帮助的工具。它不仅可以在终端中很好地播放,还可以保留剪贴板的历史记录。非常有用。