सिस्टम क्लिपबोर्ड पर विम से कॉपी करने में असमर्थ


54

जैसा कि शीर्षक में कहा गया है कि मैं विम से सिस्टम क्लिपबोर्ड पर कॉपी करने में असमर्थ हूं। वाइसवर्स काम करता है, बाहर से नकल करना और साथ चिपकाना pठीक है।

मैंने क्लिपबोर्ड समर्थन स्थापित किया है, vim संस्करण 7.3.429 है:

$ vim --version | grep clip
+clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments 
+xsmp_interact +xterm_clipboard -xterm_save 

मेरे पास है:

set clipboard=unnamedplus

मेरे .vimrcऔर यह तब सेट होता है जब मैं करता हूं:

set clipboard?

या

:echo has('clipboard')

मैं Ubuntu 12.04 LTS का उपयोग कर रहा हूं, और अंदर विम gnome-terminal(लेकिन GVim की भी यही समस्या है)। कोई उपाय?

धन्यवाद


stackoverflow.com/questions/11489428/… इससे आपको थोड़ी मदद मिल सकती है।
coteyr

क्या आपने दृश्य चयन पर "+ y टाइप करने" और विम के बाहर चिपकाने की कोशिश के बीच वीम छोड़ दिया? यदि आप ऐसा नहीं करेंगे तो काम नहीं करेंगे
सैमुअल पीटर

@SamuelPeter नहीं, मैं vim छोड़ने नहीं था
gc5

1
मैं इस समस्या में भाग गया क्योंकि मैं clipboard+=unnamedplusडिफ़ॉल्ट सेटिंग में कुछ सेट कर रहा था इसे अक्षम कर रहा था । clipboard=unnamedplusमेरे लिए काम (जैसे अन्य सेटिंग्स को हटाना) में बदलाव ।
जोनिरा

जैसा @JonnyLeeds ने उल्लेख किया है। सिस्टम क्लिपबोर्ड को साझा करने के लिए y और p का उपयोग करते समय कॉन्फ़िगरेशन set clipboard+=unnamedऔर set clipboard+=unnamedplusकाम नहीं करता है । == ; के बाद मैं पहले हटा दिया , जो है और , और यह काम करता है !! ==:set clipboard?clipboard=autoselect,exclude:cons\|linux,unnamed,unnamedplus+set clipboard=unnamedset clipboard+=unnamedplus:set clipboard?clipboard=unnamed,unnamedplus
मार्सलो

जवाबों:


87

यह मेरे लिए काम करता है (Ubuntu 13.10):

Vim-gtk के रूप में विम को पुनर्स्थापित करें:

sudo apt-get install vim-gtk

माउस का उपयोग करके आप जो चाहते हैं उसका चयन करें - फिर क्लिपबोर्ड पर कॉपी करने के लिए टाइप करें :

"+y

क्लिपबोर्ड प्रकार से विम पर चिपकाने के लिए :

"+p

मुझे नहीं पता कि क्यों, लेकिन vim --versionशो के आउटपुट की तुलना करना है कि vim-gtk की तुलना में सामान्य विम इंस्टॉलेशन काफी प्रतिबंधित है। Vim-gtk के साथ vim को बदलने से किसी भी प्लगइन्स को प्रभावित नहीं किया गया।


अग्रिम जानकारी:


1
मैं व्यक्त नहीं कर सकता कि आपने मेरी कितनी मदद की और मैं अब कितना खुश हूं: D
7hi4g0

1
दिलचस्प है, 14.04 पर नियमित VIM और VIM-GTK दोनों का xterm_clipboardसमर्थन है, लेकिन "+pनियमित VIM में काम नहीं करता है। क्लिपबोर्ड पर क्लिपिंग के बजाय, यह चयनित लाइनों के amont को बढ़ाता है।
डॉटान्चेन

1
vim-gtkअंततः स्थापित करना मेरे लिए 14.04.4 में काम किया, लेकिन मैंने दूसरों की टिप्पणियों की तुलना में चीजों को थोड़ा अलग अनुभव किया। vim-gtkस्थापित होने से पहले , विम दिखा रहा था -xterm_clipboard(यानी सक्षम नहीं)। स्थापित करने के बाद vim-gtkयह दिखाता है (+ xterm_clipboard)। मैं इसके साथ जाँच कर रहा हूँ vim --version | grep clip। वैसे भी, समझ में आता है कि आप की जरूरत है +xterm_clipboard!
overthink

यह एक बेहतरीन उपाय है। वास्तव में, मैंने एक नया उबंटू ओएस स्थापित करने के बाद इसे करने के लिए अपना पहला काम किया है।
लिनबिनक्सियाकाओ

मेरे लिए vim-gtk इंस्टॉल करना काम कर गया। साभार
मिगुएल मोटा

6

मैं नीचे मूल उत्तर छोड़ने जा रहा हूं क्योंकि यह इस प्रश्न की खोज करने वाले अन्य लोगों के लिए महत्वपूर्ण हो सकता है।

संक्षेप में ऐसा प्रतीत नहीं होता है कि एक आकार सभी उत्तर में फिट बैठता है, लेकिन 'सेट क्लिपबोर्ड = अज्ञात' के साथ या तो '* p' या 'p' में से एक "सिस्टम" क्लिपबोर्ड से काम करना चाहिए।

'* p' लगभग निश्चित रूप से आप चाहते हैं। ( यहां से )


vim एक cli प्रोग्राम है। जब इसे गनोम-टर्मिनल (या किसी भी टर्मिनल एमुलेटर) crtl + c (या किसी भी कुंजी संयोजन) के अंदर उपयोग करते समय पहले टर्मिनल एमुलेटर द्वारा नियंत्रित किया जाता है, फिर शेल, फिर अंत में प्रोग्राम (इस मामले में विम) द्वारा। vim और ctrl + c लगभग निश्चित रूप से कभी काम नहीं करेंगे क्योंकि ctrl + c रनिंग कार्य के लिए एक SIGINT सिग्नल भेजता है। vim डालने के मोड को रोकने, या खोज कार्यों को रोकने जैसी अन्य चीजों को रोकने के लिए SIGINT का उपयोग करता है।

दूसरे शब्दों में। Ctrl + C वास्तव में कभी भी VIM को पास नहीं किया जाता है। SIGINT को VIM पास किया जाता है। SIGINT के पास अन्य उपयोग हैं इसलिए कॉपी का उपयोग करने की संभावना नहीं है (और यदि आप इसे बाध्य कर सकते हैं, तो यह एक अच्छा विचार नहीं है)।

इसके बजाय Ctrl + Shift + C और Ctrl + Shift + V के साथ चिपके रहने की कोशिश करें (अन्य भी हैं, लेकिन मेरा मानना ​​है कि उन लोगों ने सिस्टम क्लिपबोर्ड में पाठ डाला)

निष्पक्ष होने के लिए मुझे gvim के बारे में ज्यादा जानकारी नहीं है।


हो सकता है कि मैंने आपको भ्रमित किया हो .. मैंने कहा कि ctrl-cOUTSIDE विम का उपयोग करना और साथ चिपकाना p, लेकिन विम में मुझे पता है कि मुझे उपयोग करना है y.. मैं अपना प्रश्न संपादित करूंगा
gc5

1
LOL को मेरी कैफीन अभी तक नहीं मिली है, क्षमा करें।
coteyr

5

अपने vimrc में उपयोग करें:

set mouse=a

यह आपको माउस के साथ मैन्युअल रूप से चयन और कॉपी करने की अनुमति देगा।


3

स्वीकृत उत्तर के अलावा , यदि आप SSH के ऊपर दूरस्थ रूप से काम कर रहे हैं (जैसे tmuxविभिन्न vimप्रक्रियाओं के साथ कई पैन जो आप के बीच कॉपी करना चाहते हैं), तो आपको अपने एक्स डिस्प्ले को निर्यात करने की भी आवश्यकता है क्योंकि विभिन्न प्रक्रियाओं के बीच इंटरफ़ेस vimका उपयोग कर रहा है xterm-clipboard। आप एक्स डिस्प्ले को रन करके सेट कर सकते हैं

export DISPLAY=:0.0

यह लॉन्च होने vim से पहले चलाया जाना चाहिए , और आपके पास किसी अन्य शेल के तहत।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.