सेट माउस के साथ विम के बाहर पाठ की प्रतिलिपि बनाना = एक सक्षम


232

सक्षम करने के बाद set mouse=a, विम के अंदर कॉपी किया गया टेक्स्ट विम के बाहर पेस्ट नहीं होगा। क्या कोई इसे ठीक करने का तरीका जानता है?

यहां, माउस के साथ पाठ का चयन दृश्य मोड को चालू करता है और Copyपॉपअप मेनू में विकल्प को निष्क्रिय करता है :

यहां छवि विवरण दर्ज करें


2
यदि आपकी विम को संकलित किया गया है +clipboardऔर mouse=a, आप टर्मिनल पॉपअप मेनू का उपयोग किए बिना / से विम तक कॉपी / पेस्ट कर पाएंगे। आप clipboardसक्षम कर सकते हैं कि क्या उपयोग कर रहा है vim --version
जेरेम पोइलर

@ जेज वर्थ ने स्पष्ट किया कि A) एक संक्षिप्त mouse=aविकल्प नहीं है, यह vimrc B में कुछ है) जब vim को +clipboardइसके साथ संकलित किया जाता है, तो आपको कॉपी / पेस्ट करने की अनुमति देता :set numberहै, और बिना संख्याओं को कॉपी / पेस्ट किए, हालांकि शायद आपको अभी भी कुछ करना है। मैपिंग सी) किसी को खुद को वीआईएम को फिर से नहीं करना पड़ता है, यह कुछ पैकेज मैनेजर पर हो सकता है जो ओएस द्वारा समर्थित है .. ओएसएक्स पर, ब्रुक्स के वीम में यह है, हालांकि ओएक्सएक्स का डिफ़ॉल्ट विम नहीं है। मेरे उत्तर में इस ओएसईएक्स का उल्लेख है।
बार्लोप

हो सकता है कि xselआपके लिए भी काम स्थापित कर रहा हो, आप संपादक के साथ या माउस के साथ पाठ का चयन कर सकते हैं और ctrl+cपाठ को कॉपी करने के लिए हिट कर सकते हैं, वैसे यह neovim, github.com/neovim/neovim/issues/7945#issuecomment-361970165
Naeem Baghi

जवाबों:


426

shiftमाउस से चयन करते समय दबाएँ । यह माउस चयन को ऐसे व्यवहार करेगा जैसे कि mouse=aसक्षम नहीं था।

नोट: यह ट्रिक "मिडिल बटन पेस्ट" पर भी लागू होती है: यदि आप vim टेक्स्ट को पेस्ट करना चाहते हैं जो कि बाहर चुना गया था, shiftतो मध्य बटन पर क्लिक करते समय दबाएँ। बस यह सुनिश्चित करें कि जब आप ऐसा करते हैं तो सम्मिलित मोड सक्रिय हो जाता है (आप :set pasteअप्रत्याशित प्रभावों से बचना चाहते हैं)।

OS X (मैक): चयन ( स्रोत ) करते समय ऑल्ट / विकल्प


2
ठीक है, यह वास्तव में समाधान है। लेकिन क्या होगा यदि आप बहुत सारे कोड का चयन करना चाहते हैं जो आपकी स्क्रीन से अधिक है? (फिर आपको एक ही समय में स्क्रॉल करना और चयन करना होगा)
ओज़कॉन

3
ब्लॉक चयन शुरू करने के लिए <kbd> ctrl </ kbd> + <kbd> shift </ kbd> + बायां माउस बटन दबाकर ब्लॉक सिलेक्ट का उपयोग करने का विकल्प भी है। माउस का मध्य बटन पेस्ट की गई सामग्री को अन्य विंडो में पेस्ट करता है।
माइक्रो

6
यदि आपके पास लाइन नंबर (जैसा कि स्क्रीनशॉट दिखाता है) तब मैक ओएस एक्स पर एएलटी का चयन करते समय तब लाइन नंबर भी कॉपी किए जाते हैं। ब्लॉक चयन मोड का चयन करते समय इस मामले में ALT + CMD का उपयोग करना बेहतर होता है ताकि आप संख्याओं के चयन से बच सकें।
आरोन

16
मैक टर्मिनल के लिए, ओएस एक्स 10.11 एल कैपिटन के बाद , Fnकुंजी जाने का सही तरीका है। Ie, ( mouse=aसक्षम के साथ ) प्रेस Fnकुंजी का चयन करते समय पाठ का चयन करें , फिर अपनी इच्छानुसार कहीं भी कॉपी और पेस्ट करने के लिए CMD + C का उपयोग करें।
याओजीआई

1
मुझे नहीं पता कि उस उत्तर में कितने उत्थान हैं। यदि आपने लाइन नंबरों से बचने के लिए माउस सपोर्ट को सक्षम किया है तो यह सुझाव पूरी तरह से बेकार है।
स्टेलियोस एडमांटिडिस

49

का प्रयोग करें ", +, yएक दृश्य चयन करने के बाद। आपको वैसे भी टर्मिनल की कॉपी कमांड का उपयोग नहीं करना चाहिए, क्योंकि जो वास्तविक सामग्री के बजाय टर्मिनल देखता है वह कॉपी करता है। यहाँ है कि यह क्या करता है:

  • ", +विम को +अगले डिलीट, यैंक या पुट के लिए नामित रजिस्टर का उपयोग करने के लिए कहता है । रजिस्टर नाम +एक विशेष रजिस्टर है, यह X11 क्लिपबोर्ड रजिस्टर है। (अन्य प्रणालियों पर, आप *इसके बजाय उपयोग करेंगे , मुझे लगता है, देखें :help clipboardऔर :help x11-selection)
  • y यैंक कमांड है, जो विम को पहले से नामित रजिस्टर में चयन करने के लिए कहता है।

आप इसे इस तरह से मैप कर सकते हैं:

:vmap <C-C> "+y

और फिर माउस के साथ कुछ हाइलाइट करें और Control-Cइसे कॉपी करने के लिए दबाएं ।

यह सुविधा केवल तभी काम करती है जब विम को +xterm_clipboardविकल्प के साथ संकलित किया गया हो । vim --versionपता लगाने के लिए भागो कि क्या यह है।


4
या संभवतः "*yओएस पर निर्भर करता है।
frabjous

वह काम किया! हालांकि, संयोजन बहुत जटिल है, 4 बटन वास्तव में .. संभवतः मुझे दूसरे उत्तर से "शिफ्ट" तरीके का उपयोग करते हुए दूसरे को मैप करने की आवश्यकता है।
गीत क्यूबा

मानचित्रण पूरी तरह से ठीक काम करता है :) अब मुझे नहीं पता कि आप लोगों में से कौन सा उत्तर मुझे स्वीकार करना चाहिए :)
गीत 21

2
मेरे लिए यह स्वीकृत उत्तर की तुलना में बेहतर समाधान है क्योंकि इस पद्धति के साथ, पंक्ति संख्याओं की नकल नहीं की जाती है।
शाऊल सिल्वा

किस बारे में +clipboard? और के बारे में क्या +clipboardसाथ xterm_clipboardबंद?
बार्लोप

18

इसके बजाय .vimrc में set mouse=aउपयोग करेंset mouse=r


1
लेकिन यह स्क्रॉलिंग को निष्क्रिय कर देता है
Makesh

3
प्लीज क्यों कहते हैं। एक नज़र में, यह मूल रूप से पूरी तरह से माउस मोड को अक्षम करने के समान है, जो प्रश्न का बिंदु नहीं है।
मिकेल

@ मायिक सही, मेरा जवाब भी देखिए जोश ली का जवाब मदद कर सकता है
बार्लॉप

यदि वे सक्षम हैं तो दुर्भाग्य से, यह लाइन नंबरों को भी कॉपी करेगा।
vikin9

17

fnइसके बजाय OSX का उपयोग करें shift


मेरे लिए optionकुंजी के साथ काम किया जो altमैकओएस होस्ट पर प्रमुख समकक्ष है। हालांकि यह डेबियन 9 पर रिमोट टर्मिनल था। रिमोट में set mouse=a/ पर जोड़कर काम नहीं किया । set mouse=r/etc/vim/vimrc
मर्तिपाले

5

उबंटू में, X- टर्म कॉपी और पेस्ट बाइंडिंग का उपयोग VIM के अंदर (Ctrl-Shift-C & Ctrl-Shift-V) पाठ पर करना संभव है जो Shift कुंजी का उपयोग करके hilighted किया गया है।


4

एक और OSX-Mac विकल्प अनचेक करना है View->Allow Mouse Reporting (या इसे टॉगल करने के लिए ⌘-R दबाएं।) यह आपको माउस इंटरैक्शन और माउस चयन के बीच टॉगल करने की अनुमति देता है, जो कुछ बिट्स का चयन और कॉपी / पेस्ट करते समय उपयोगी हो सकता है क्योंकि आपके पास नहीं है। यह करने के लिए एक संशोधक कुंजी धारण करने के लिए।

लाइन नंबर के साथ मल्टीलाइन के लिए ध्यान दें:

मेरे पास आमतौर पर लाइन नंबर सक्षम होते हैं इसलिए यदि आप कई लाइनों का चयन करते हैं तो यह लाइन नंबरों को भी कॉपी करेगा। यदि आप बिना लाइन नंबर के कई लाइनों को कॉपी करना चाहते हैं तो संख्याओं को निष्क्रिय कर दें :set nonuऔर फिर आप :set nuकॉपी करने के बाद उन्हें फिर से सक्षम कर सकते हैं।


1

आप :set mouse&माउस का उपयोग करके चयनित पाठ की कॉपी / पेस्ट को सक्षम करने के लिए vim कमांड लाइन में उपयोग कर सकते हैं । फिर आप केवल मध्य माउस बटन का उपयोग कर सकते हैं या shiftinsertइसे पेस्ट कर सकते हैं।


फिर जब आपके पास :set numberयह संख्या पर प्रकाश डाला गया। तो ज्यादा अच्छा नहीं। तो आप अच्छे से पूर्ववत करेंset mouse=a
बार्लोप

1

संकलन सेटिंग्स जो विम के साथ संकलित की गई थीं, इस मुद्दे का हिस्सा हैं। vim --versionये दिखाता है।

OSX में, डिफॉल्ट vim है -clipboard लेकिन आपको चाहिए+clipboard

ओएक्सएक्स पर आप और स्पष्ट रूप से आम तौर पर मैकविम का उपयोग करना चाहिए। आप क्या कर सकते हैं brew cask install macvim में से एक है यही कारण है कि +clipboard

उन्हें आपके पास दो vims होंगे।

~$ ls -l /usr/bin/vim   <--- default vim
-rwxr-xr-x  1 root  wheel  1745984 15 Jul  2017 /usr/bin/vim

~$ ls -l /usr/local/bin/vim   <-- macvim, installed recently via that mentioned brew line. 
lrwxr-xr-x  1 apple  admin  42 16 May 23:32 /usr/local/bin/vim -> /Applications/MacVim.app/Contents/bin/mvim
~$ 

रनिंग वीआईएम मैकविम को चलाएगा क्योंकि मार्ग में /usr/local/binपहले होना चाहिए /usr/bin, हालांकि आप जांच कर सकते हैं which vim

रनिंग वीम (मैकविम चलाने के लिए), ठीक है लेकिन आप वीआई को मैकविम के कॉस में मैप करना चाह सकते हैं अन्यथा रनिंग वीआई डिफ़ॉल्ट विम पर रहता है! आप पुन: लिख सकते हैं या हटा सकते हैं (rm के साथ) और vi सिम लिंक को पुनः बनाएँ, ln के साथ। और ऐसा करने के लिए कि 'बिना ऑपरेशन की अनुमति के "त्रुटि के बिना, आपको (अस्थायी रूप से) SIL को अक्षम करना होगा। /apple/208478/how-do-i-disable-system-inteinity-protection- घूंट-उर्फ-बिना जड़-ऑन-MacOS-os-x

मैकविम +clipboardद्वारा दिखाया गया हैvim --version

यहां ~/.vim/vimrcकेवल आवश्यक लाइनों के साथ काम करना है।

:set mouse=a
:map <leader>c "+y
:map <leader>v "+p

डिफ़ॉल्ट लीडर कुंजी बैकस्लैश है।

मैंने एक सुझाव पढ़ा कि किसी को नेता कुंजी का उपयोग करना चाहिए .. (निश्चित रूप से नियंत्रण में पहले से ही उपयोग में कई चाबियाँ हैं, इसलिए सुझाव नियंत्रण का उपयोग नहीं करना था। मुझे नहीं पता कि यह कमांड कुंजी पर भी लागू होता है, लेकिन किसी भी तरह)।

कि उल्लेख मानचित्रण के साथ, \cक्या करेंगे "+yजो क्लिपबोर्ड, के रूप में जाना जाता है + रजिस्टर से कॉपी कर देंगे। और \vरजिस्टर से पेस्ट किया जाएगा जिसे + कहा जाता है।

तो यह एक कॉपी / पेस्ट है जो विंडोज़ के बीच काम करता है।

"*इसके बजाय एक और OS की आवश्यकता हो सकती है"+


दोनों के पास है -xterm_clipboard। हो +xterm_clipboardसकता है कि किसी तरह से फायदेमंद होगा, लेकिन इस समाधान के लिए कोई फर्क नहीं पड़ता।
बार्लोप

0

यदि आप पुट्टी सत्र का उपयोग कर रहे हैं, तो यह स्वचालित रूप से चयन की प्रतिलिपि बनाता है। यदि हमने vim में "set mouse = a" विकल्प का उपयोग किया है, तो Shift + माउस ड्रैग का उपयोग करके पाठ का चयन स्वतः हो जाता है। एक्स-टर्म में जांच की आवश्यकता है।


0

em ... दबाए रखें Shiftऔर फिर दाएं माउस बटन पर क्लिक करें


0

मैंने आकस्मिक रूप से समझाया कि कैसे स्विच ऑफ किया जाए set mouse=a, जब मैंने प्रश्न को रिराइड किया और पता चला कि ओपी पहले इसे बंद नहीं करना चाहता था। वैसे भी किसी को भी पता नहीं है कि माउस को कैसे स्विच किया जाए ( set mouse=) केन्द्र में, मैं यहाँ अपने उत्तर का एक संदर्भ छोड़ता हूँ: https://unix.stackexchange.com/a/506723/194822


0

चयन के साथ कॉपी और पेस्ट करते समय होल्डिंग शिफ्ट मेरे लिए काम करती है


यह स्वीकृत उत्तर कहता है। एक उपयोगकर्ता को धन्यवाद देने के लिए - एक बार जब आपके पास ऐसी प्रतिष्ठा होगी, तो आप उनके पद को बढ़ा पाएंगे।
वाई हा ली

0

set clipboard=unnamedअपने में जोड़ें.vimrc । तो यह सभी यैंक के लिए अनाम रजिस्टर के बजाय क्लिपबोर्ड रजिस्टर '*' का उपयोग करेगा, हटाएगा, बदलेगा और संचालन करेगा (ध्यान दें कि यह केवल माउस को प्रभावित नहीं करता है)।

रजिस्टर '*' का व्यवहार आपके प्लेटफॉर्म पर निर्भर करता है और आपके vimद्वारा संकलित किया गया है (या यदि आप उपयोग करते हैं)neovim )।

यदि यह काम नहीं करता है, तो आप के साथ कोशिश कर सकते हैं set clipboard=unnamedplus, लेकिन यह विकल्प केवल X11 सिस्टम पर समझ में आता है।


-3

ESC मोड में, जब माउस = a सेट किया जाता है, तो माउस का उपयोग करके टेक्स्ट का चयन करें। यह दृश्य मोड को सक्षम करेगा। फिर आप चुने हुए टेक्स्ट को 'y' प्रेस कर सकते हैं और 'p' को जहाँ चाहें वहाँ पेस्ट कर सकते हैं। यह केवल विम के भीतर होता है।


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