विकास युक्ति: कंसोल आउटपुट को स्वचालित रूप से क्लिपबोर्ड पर कॉपी करें

श्रेणी: लिनक्स / शैल उत्पादकताXस्पेसब्रेकX प्लेटफ़ॉर्म: लिनक्स (zsh + Konsole/KDE)


समस्या

एआई सहायकों के साथ काम करते समय, आपको अक्सर टर्मिनल आउटपुट की प्रतिलिपि बनाने और उसे चैट में पेस्ट करने की आवश्यकता होती है। इसका आमतौर पर मतलब है:

  1. आदेश चलाएँ

  2. माउस से आउटपुट चुनें

  3. प्रतिलिपि

  4. ब्राउज़र पर स्विच करें

  5. चिपकाएँ

ये बहुत सारे कदम हैं.


समाधान: preexec / precmd के माध्यम से ऑटो-कैप्चर

इसे अपने ~/.zshrc में जोड़ें:

CODE_ब्लॉक_0

फिर पुनः लोड करें: CODE_ब्लॉक_1

परिणाम

प्रत्येक कमांड के बाद, आउटपुट स्वचालित रूप से आपके क्लिपबोर्ड में होता है - Ctrl+V के साथ आपके AI चैट में पेस्ट करने के लिए तैयार।

संदर्भ के लिए आउटपुट को हमेशा ~/t.txt में भी सहेजा जाता है।


यह काम किस प्रकार करता है

| भाग | यह क्या करता है | |——|—-|| | प्रीएक्सेक() | प्रत्येक कमांड से पहले चलता है, आउटपुट को ~/t.txt | पर रीडायरेक्ट करता है | precmd() | प्रत्येक कमांड के बाद चलता है, stdout को पुनर्स्थापित करता है और क्लिपबोर्ड पर कॉपी करता है | | टी ~/t.txt | आउटपुट को टर्मिनल में दिखाते हुए फ़ाइल में सहेजता है | | सेड '...' | स्ट्रिप्स केडीई कंसोल शीर्षक एस्केप अनुक्रम (]2;... ]1;) | | एक्सक्लिप | साफ़ किए गए आउटपुट को क्लिपबोर्ड पर कॉपी करता है |


आवश्यकताएं

CODE_ब्लॉक_2


⚠️ क्या न करें

fc -ln -1 | का उपयोग **नहीं** करें अंतिम आदेश को पुनः निष्पादित करने के लिए bash:

CODE_ब्लॉक_3

यह समाप्त होने के बाद प्रत्येक कमांड को फिर से निष्पादित करता है, जो विनाशकारी दुष्प्रभाव पैदा कर सकता है - उदाहरण के लिए फ़ाइलों को ओवरराइट करना, गिट कमिट को फिर से चलाना, sed -i को फिर से चलाना, आदि।

उपरोक्त preexec/precmd दृष्टिकोण निष्पादन के दौरान आउटपुट कैप्चर करता है - सुरक्षित और विश्वसनीय।