开发提示:自动将控制台输出复制到剪贴板

类别: Linux / Shell 生产力
平台: Linux (zsh + Konsole/KDE)


## 问题

使用人工智能助手时,您经常需要复制终端输出并将其粘贴到聊天中。这通常意味着: 1.运行命令 2. 用鼠标选择输出 3. 复制 4.切换到浏览器 5. 粘贴

这步骤太多了。


解决方案:通过 preexec / precmd 自动捕获

将其添加到您的“~/.zshrc”:

代码_块_0

然后重新加载: 代码_块_1

### 结果

每执行一个命令后,输出都会自动存储在您的剪贴板中 — 准备好使用 Ctrl+V 粘贴到您的 AI 聊天中。

输出也始终保存在“~/t.txt”中以供参考。


它是如何工作的

部分

它有什么作用

preexec()

在每个命令之前运行,将输出重定向到 ~/t.txt

precmd()

在每个命令后运行,恢复标准输出并复制到剪贴板

tee ~/t.txt

将输出保存到文件,同时仍然在终端中显示它

sed '...'

去除 KDE Konsole 标题转义序列 (]2;... ]1;)

xclip

将清理后的输出复制到剪贴板


## 要求

代码_块_2


⚠️ 不该做什么

不要使用fc -ln -1 | bash 重新执行最后一个命令:

代码_块_3

这会在完成后重新执行每个命令,这可能会导致破坏性的副作用 - 例如覆盖文件、重新运行“git commit”、重新运行“sed -i”等。

上面的preexec/precmd方法捕获执行期间的输出——安全可靠。