# 开发提示:自动将控制台输出复制到剪贴板 **类别:** 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`方法捕获**执行期间**的输出——安全可靠。