我想要一个快速的键盘命令序列将当前命令在bash提示符复制到剪贴板.
所以,例如,要将最后一个bash命令复制到剪贴板,我会按[某些命令序列]将其复制.或者,要在bash理论中搜索命令,我将使用ctrl r,搜索,在命令提示符下显示,然后[某些命令序列]复制等.
我目前的解决方案是使用bash管道:Pipe to/from Clipboard
所以,将以前的命令复制到剪贴板:
echo "!!" | pbcopy
哪个不太可怕,但如果复制命令不是最后一个命令,等等
实现我在这里要实现的正确方法是什么?
以@ Lauri的帖子为灵感,这里是一个使用bind命令的解决方案:
bind '"\C-]":"\C-e\C-u pbcopy <<"EOF"\n\C-y\nEOF\n"'
ctrl-]然后将任何当前的bash提示复制到剪贴板.
为了使其持久化,您可以将上面的bind命令添加到〜/ .bashrc中,也可以删除外部引号并删除调用的“bind”部分,并将结果添加到〜/ .inputrc.
非OS-X用户将必须使用适当的命令(可能是xclip)交换pbcopy.
引用的heredoc被使用,而不是回声管技术,以便在bash提示符下的命令中保留单引号和双引号.使用这种技术,我能够点击ctrl-],从终端提示符复制实际的bind命令,并将其粘贴到答案中.所以heredoc技术处理bind命令中的所有特殊字符.