نصيحة المطورين: قم بنسخ مخرجات وحدة التحكم إلى الحافظة تلقائيًا

                 **الفئة:** إنتاجية 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 أعلاه المخرجات أثناء التنفيذ — وهي آمنة وموثوقة.