نصيحة المطورين: قم بنسخ مخرجات وحدة التحكم إلى الحافظة تلقائيًا¶
**الفئة:** إنتاجية Linux / ShellXSPACEbreakX
**النظام الأساسي:** Linux (zsh + Konsole/KDE)
---
## المشكلة
عند العمل مع مساعدي الذكاء الاصطناعي، غالبًا ما تحتاج إلى نسخ مخرجات الوحدة الطرفية ولصقها في الدردشة. وهذا يعني عادة: 1. تشغيل الأمر 2. حدد الإخراج بالماوس 3. انسخ 4. قم بالتبديل إلى المتصفح 5. لصق
هذا عدد كبير جدًا من الخطوات.
---
الحل: الالتقاط التلقائي عبر preexec / precmd¶
أضف هذا إلى `~/.zshrc`:
# === AUTO-OUTPUT LOGGER ===
# Automatically saves console output to ~/t.txt and copies to clipboard.
# Toggle: set AUTO_CLIPBOARD=true/false
AUTO_CLIPBOARD=true
# Redirect stdout+stderr to ~/t.txt before each command
preexec() {
case "$1" in
sudo*|su*) return ;;
*) exec > >(tee ~/t.txt) 2>&1 ;;
esac
}
precmd() {
exec >/dev/tty 2>&1
if [ "$AUTO_CLIPBOARD" = "true" ] && [ -s ~/t.txt ]; then
cleaned=$(cat ~/t.txt \
| sed 's/\][0-9]*;[^]]*\][0-9]*;//g; s/^[0-9]*;//g' \
| sed "s|$HOME|~|g" \
| sed 's/[^[:print:]]//g' \
| grep -v '^$')
if [ -n "$cleaned" ]; then
echo "$cleaned" | xclip -selection clipboard
echo "[📋 In Zwischenablage kopiert]"
fi
fi
}
ثم أعد التحميل:
source ~/.zshrc
### نتيجة
بعد كل أمر، يكون الإخراج تلقائيًا في الحافظة الخاصة بك - جاهزًا للصقه في دردشة الذكاء الاصطناعي الخاصة بك باستخدام Ctrl+V.
يتم أيضًا حفظ الإخراج دائمًا في ~/t.txt كمرجع.
---
## كيف يعمل
| الجزء | ماذا يفعل |
|------|------------|
| preexec() | يتم تشغيله قبل كل أمر، ويعيد توجيه الإخراج إلى ~/t.txt |
| بريكمد () | يتم تشغيله بعد كل أمر، ويستعيد stdout وينسخ إلى الحافظة |
| تي ~/t.txt | يحفظ الإخراج في ملف بينما يستمر في إظهاره في الوحدة الطرفية |
| سيد\'...'' | شرائط تسلسل الهروب من عنوان KDE Konsole (]2;… ]1;) | | xclip` | نسخ الإخراج المنظف إلى الحافظة |
---
## متطلبات
# Install xclip if not present
sudo pacman -S xclip # Manjaro/Arch
sudo apt install xclip # Ubuntu/Debian
---
## ⚠️ ما لا يجب فعله
لا لا تستخدم fc -ln -1 | bash لإعادة تنفيذ الأمر الأخير:
# ❌ DANGEROUS - do not use!
precmd() {
output=$(fc -ln -1 | bash 2>&1) # Re-executes last command!
echo "$output" | xclip -selection clipboard
}
يؤدي هذا إلى إعادة تنفيذ كل أمر بعد انتهائه، مما قد يسبب آثارًا جانبية مدمرة - على سبيل المثال الكتابة فوق الملفات، وإعادة تشغيل git Commit، وإعادة تشغيل sed -i، وما إلى ذلك.
يلتقط النهج preexec/precmd أعلاه المخرجات أثناء التنفيذ — وهي آمنة وموثوقة.