复制 Terminal.app 中最后一个命令的输出

复制 Terminal.app 中最后一个命令的输出

!! | pbcopy还会再次运行命令,并且不能与交互式命令一起使用。

这依赖于提示始终是$

tell application "Terminal" to tell window 1 to history
do shell script "/bin/echo " & quoted form of result & ¬
    " | ruby -e 'puts $<.read.split(/^\\$ .*?$/)[-2][1..-1]'"
set the clipboard to result

有人知道更好的选择吗?

答案1

如果您使用的是 el Capitan 或更高版本,则可以使用 Cmd-shift-A 选择最后一个命令的输出,然后使用 Cmd-C 复制它。遗憾的是,此功能不适用于以前的版本。


已编辑以添加评论中的更新:

  • 这也适用于除最新命令之外的其他命令:首先手动选择任何先前命令的输出的任何部分,然后按 Cmd + Shift + A
  • 在 iTerm 中尝试此快捷方式后,它会要求安装一些 Shell Integrations,然后此键盘快捷键也会在 iTerm 中开始工作,请参阅https://superuser.com/a/1242752/676978更多细节

答案2

原始答案在这里找到

如果你使用的是 OSX,我推荐一个别名

别名 copyLastCmd="fc -ln -1 | pbcopy"。

每当您需要保存一个天才之举时,您都可以快速调用它。 – Dawson B 2017 年 1 月 30 日 6:03

刚刚测试了这一点,因为我正在寻找相同的功能,可以确认它至少在 macOS Monterey (12.6) 上仍然可以运行。

相关内容