मैं vim में कमांड आउटपुट कैसे कॉपी करूं?


33

उदाहरण के लिए, यदि मैं :pwdवर्तमान कार्यशील निर्देशिका प्राप्त करने के लिए ' ' टाइप करता हूं, तो मैं gvim में पाठ का चयन कर सकता हूं लेकिन मैं यह पता नहीं लगा सकता कि इसे क्लिपबोर्ड पर कैसे कॉपी किया जाए। अगर मैं कंसोल वीम में भी यही कोशिश करता हूं, तो मैं इसे माउस से नहीं चुन सकता। मैं यह चाहूंगा कि सभी vim कमांड के साथ काम करें, जैसे set guifontकि guifont=Consolas:h10:cANSIआउटपुट को कॉपी करना ।

जवाबों:


41

क्या आप इसके लिए देख रहे हैं,

:redir @* | set guifont | redir END

: redir कमांड एक कमांड के आउटपुट को एक रजिस्टर (@ *) में पुनर्निर्देशित करता है। रजिस्टर @ * क्लिपबोर्ड को संदर्भित करता है।

इस बारे में अधिक जानकारी के लिए,

:help :redir

कुछ सुराग में vim-gtk काम नहीं किया?
सर्जियो अब्रेउ

@SergioAbreu @+इसके बजाय प्रयास करें @*(अच्छी तरह से, यह gvim में काम करता है)।
leeand00

10

:r !pwdवर्तमान कार्यशील निर्देशिका को सीधे GVIM फ़ाइल में लाने के लिए ' ' प्रयास करें ।
फिर आप इसे क्लिपबोर्ड पर कॉपी कर सकते हैं जैसे कि आप किसी अन्य पाठ फ़ाइल सामग्री को वहां खोले।


यह उपयोगी है, लेकिन क्या मैं set guifontउदाहरण के लिए इसका उपयोग कर सकता हूं ?
स्टीवन

नहीं, यह शेल कमांड नहीं है इसलिए यह काम नहीं करेगा।
केविन पैंको

4

इस विशेष उदाहरण के लिए आप कर सकते हैं (नोट "!" जो इसे शेल के माध्यम से जाता है):

:!pwd | xclip

या

:!pwd | xclip -selection secondary

(एक्स-चयन आप किस आधार पर चाहते हैं)।

आपको पहले xclip स्थापित करना पड़ सकता है

sudo apt-get install xclip

(या उसके बराबर)


3

यदि आप xterm में vim चला रहे हैं, तो पाठ का चयन करते समय शिफ्ट कुंजी को दबाकर पाठ को क्लिपबोर्ड के एक्स समकक्ष के साथ कॉपी कर लेंगे।


एक्स में दो क्लिपबोर्ड हैं (कम से कम); आपका सुझाव पाठ को प्राथमिक चयन (मध्य-क्लिक के साथ पेस्ट) के बजाय CLIPBOARD hselection (अधिकांश एप्लिकेशन में Ctrl + V के साथ पेस्ट) में रखेगा।
मैरियस गेदमिनस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.