विकास युक्ति: कंसोल आउटपुट को स्वचालित रूप से क्लिपबोर्ड पर कॉपी करें¶
श्रेणी: लिनक्स / शैल उत्पादकताXस्पेसब्रेकX प्लेटफ़ॉर्म: लिनक्स (zsh + Konsole/KDE)
समस्या¶
एआई सहायकों के साथ काम करते समय, आपको अक्सर टर्मिनल आउटपुट की प्रतिलिपि बनाने और उसे चैट में पेस्ट करने की आवश्यकता होती है। इसका आमतौर पर मतलब है:
आदेश चलाएँ
माउस से आउटपुट चुनें
प्रतिलिपि
ब्राउज़र पर स्विच करें
चिपकाएँ
ये बहुत सारे कदम हैं.
समाधान: 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 दृष्टिकोण निष्पादन के दौरान आउटपुट कैप्चर करता है - सुरक्षित और विश्वसनीय।