我正在尝试将我创建的全局变量中包含的数组传递到我的mac上的剪贴板中.
它很长,所以我不想在我的控制台上突出显示,复制和粘贴.
我想使用嵌入式unix代码,特别是pbcopymac笔记本电脑控制台的功能,它允许我将文本传递到我的计算机剪贴板,准备粘贴.
如果我用文件保存这样做,我会做这样的事情(在ruby中):
stringdata = <<blah blah blah process, lets say it failed and the progress data is stored in this variable so we can skip forward to where the script screwed up in a process when we start up and handle the error instance(s)>>
File.open("temp.txt"){|f| f.write(stringdata)}
`cat temp.txt | pbcopy`
Run Code Online (Sandbox Code Playgroud)
但是我可以在不创建临时文件的情况下这样做吗?
我确信这是可能的.文本中的所有内容都是可能的.提前感谢您的解决方案
我经常发现自己使用以下命令将历史命令复制到剪贴板:
echo !123 | pbcopy
终端可以正常工作.假设!123 = cd ..它看起来像这样:
$ echo !123 | pbcopy
echo cd .. | pbcopy
//result: `cd ..` is in the clipboard
Run Code Online (Sandbox Code Playgroud)
为了让生活更轻松,我将这个bash函数添加到我的.bashrc中:
function pb() {
echo $1 | pbcopy
}
Run Code Online (Sandbox Code Playgroud)
理想情况下,将调用此命令,如下所示:pb !!.但是,这不起作用.这是发生的事情:
$ pb !123
pb cd .. | pbcopy
//result: `!!` is in the clipboard
Run Code Online (Sandbox Code Playgroud)
无论我调用什么历史命令,它总是返回!!到剪贴板.我也试过制作别名,但是它有同样的问题:
alias pb='echo !! | pbcopy'
有什么指针吗?
我看过这篇文章:how-can-i-copy-the-output-of-a-command-directly-into-my-clipboard
我有这个别名
# Redoes the last command and copies the output to clipboard
alias cl="fc -e -|pbcopy"
Run Code Online (Sandbox Code Playgroud)
但是,我想要一个别名或一个函数,它不会重做最后一个命令,但会复制最后一个命令的输出。
在 OSX 上,我经常去git log寻找一个提交,通常是几个回来,用我的鼠标复制它,然后重新设置它。
如何在不使用鼠标或记住它的情况下轻松完成此操作?
问题尽管有一个答案被接受但未解决:我们正努力让Jonah的代码起作用.
问题:将(1)的代码更改为(2)
我知道线程.我希望能够在Screen中运行以下代码
代码(1)
cat ~/.vimrc | pbcopy (1)
Run Code Online (Sandbox Code Playgroud)
代码(2)
cat ~/.vimrc > /tmp/pbcopy.pipe (2)
Run Code Online (Sandbox Code Playgroud)
我尝试解决问题: 将以下代码放到.zshrc中
function pbcopy() { "(cat \"$1\")" > /tmp/pbcopy.pipe }
Run Code Online (Sandbox Code Playgroud)
我明白了
cat masi | pbcopy
pbcopy: command not found: (cat "")
cat: masi: No such file or directory
Run Code Online (Sandbox Code Playgroud)
你如何在屏幕内使用pbcopy?
我在vimscript中有一个自定义函数,它创建一个字符串然后将它回显到底部控制台.目前,我使用cmd-c复制并粘贴该输出,将其复制到mac os x剪贴板.我想通过将回显管道传输到pbcopy来缩短这个工作流程,我试过:
:echo "hello" <BAR> !pbcopy
Run Code Online (Sandbox Code Playgroud)
但当然这不起作用.我还尝试将输出捕获到寄存器中然后输出它:
:@a!pbcopy
Run Code Online (Sandbox Code Playgroud)
但它只是尝试执行存储在@a中的字符串,这不是vim命令.我觉得这应该是直截了当的,谢谢.