OS X क्लिपबोर्ड में चयन की प्रतिलिपि कैसे बनाएं


225

मेरे पास विम में चयनित क्षेत्र है। मैं इसे OS X क्लिपबोर्ड में कैसे कॉपी कर सकता हूं?

(OS X क्लिपबोर्ड को पाइप के माध्यम से लिखा जा सकता है /usr/bin/pbcopy)


4
बस दृश्य चयन, फिर "+y
zx1986

2
OSX वाले जहाजों के पास या नहीं है । आप इससे सत्यापित कर सकते हैं । इससे इसका समाधान संभव है । +clipboard+xterm-clipboardvim --version | grep clipboardbrew install vim --with-client-server
लंदनरोब

1
या MacVim का उपयोग करें, जो एक कमांड-लाइन संस्करण प्रदान करता है जो आपके द्वारा सहानुभूति से कर सकता है ~/binऔर फिर ~/binआपके सिस्टम में सामान्य सिस्टम-स्थापित विम और समानार्थक शब्द के आगे डाला जा सकता है।
द टिन मैन

@ Zx1986 ने जो लिखा उस पर निर्माण करते हुए, मैंने तीन चीजें कीं: 1) निम्नलिखित को मेरे ~ / .bashrc में जोड़ा गया ताकि मैक वीम के टर्मिनल मोड में उर्फ ​​vi / vim के क्रम में: alias vi='mvim -v'2) निम्नलिखित को जोड़ दिया ~ ~ .vimrc, जो Ctrl + को मैप करता है। c (cmd + c): vnoremap <C-c> "+y3) ^cटर्मिनल में चलने पर कुंजी अनुक्रम (Ctrl + C) टाइप करने के लिए कीबोर्ड मेस्ट्रो कॉन्फ़िगर किया गया (मेरे मामले में iTerm2) यह OSX क्लिपबोर्ड पर पाठ की प्रतिलिपि बनाने के लिए Cmd + c का उपयोग करना संभव बनाता है ताकि इसे अन्य OSX अनुप्रयोगों में चिपकाया जा सके।
नील ग्रिफिन

जवाबों:


79

विम के किस संस्करण का उपयोग करता है इसके आधार पर, मैं +क्लिपबोर्ड तक पहुंचने के लिए रजिस्टर का उपयोग करने में सक्षम हूं ।

" मैक ओएस एक्स क्लिपबोर्ड शेयरिंग " में कुछ विचार हो सकते हैं जो आपके लिए भी काम करते हैं।


5
बिना वीआईएम वाले लोगों के लिए + क्लिपबोर्ड के बिना संकलित लिंक ऊपर वर्कअराउंड w / o
रीकंप्लिमेंटिंग

बहुत महत्वपूर्ण विवरण !!! यदि आपके पास विम-संस्करण 7.3 है, तो यह आपके लिए काम नहीं कर सकता है, लेकिन यदि आपके पास विम-संस्करण 7.4 है, तो यह करता है (और कभी-कभी आपको पूरे "+ y" भी नहीं करना पड़ता है। और आप इसे केवल चेक करते हैं। लेखन> टर्मिनल में vim और फिर संस्करण-संख्या तब होती है जब आप इसे शुरू करते हैं।
Zeth


1
"+रजिस्टर केवल X11 के लिए मौजूद है (जब तक आप + X11 समर्थन के साथ, vim निर्माण जो ओएस एक्स में एक X11 सर्वर XQuartz स्थापित हो जाएगा) है, जबकि ओएस एक्स अपनी खिड़कियां प्रणाली के रूप में X11 उपयोग नहीं करता।
nn0p

क्या करें, अगर दोनों - vimऔर macvimहै + क्लिपबोर्ड। और को clipboard=unnamedजोड़ा ~/.vimrc? वास्तविक दर्द की तरह लग रहा है, सभी वर्कअराउंड की कोशिश की और वर्तमान में स्पेसमैक्स का उपयोग करना है, जब मुझे पता है, कि मुझे वैश्विक क्लिपबोर्ड का उपयोग करना होगा :)
निकोले फोमिनाह

240

के लिए MacVim और Windows जाँचने, बस अपने लिए निम्न जोड़ने ~/.vimrc:

set clipboard=unnamed

अब जैसे सभी कार्यों yy, Dऔर Pक्लिपबोर्ड के साथ काम करते हैं। के साथ "*या उन्हें उपसर्ग करने की आवश्यकता नहीं है "+


2
मैंने सारी सुबह यह पता लगाने में बिताई है कि कैसे y, d और P कमांड को C-C और ⌘-V से अलग किया जाए जो MacVim आपके लिए सक्षम बनाता है और अंत में इस पार आया। निश्चित रूप से, मैंने इसे अपने विमकैन में तब जोड़ा था जब मैं विम किशोर था और इसने मुझे कभी निराश किया है।
जोनाथन डूमाइन

2
मैकविम के लिए नए लोगों के लिए, यह -vध्वज के साथ टर्मिनल से उपयोग करने योग्य है ( mvim -v)। मेरे पास मेरे और विम के लिए अलियास है।
पीके-एनबी

3
जैसा कि ऊपर अपनी टिप्पणी में @VincentG द्वारा उल्लेख किया गया है, यह वास्तव में विम के टर्मिनल-आधारित संस्करणों के साथ काम करता है, लेकिन टर्मिनल के भीतर tmux का उपयोग करने वालों को यहां विस्तृत समाधानों में से एक का पालन करना होगा: stackoverflow.com/a/11421329-456584
user456584

3
इसका स्वीकृत उत्तर होना चाहिए - जब तक :echo has("clipboard")कहता है 1, जो vimvim -v
मैकविम के

1
@ जोसेफ, अगर :versionआपको दिखाता है -clipboardतो विम का निर्माण क्लिपबोर्ड सुविधा का समर्थन नहीं करता है। मैं MacVim के बारे में बात कर रहा था, जो एक GUI ऐप है।
जॉर्ज वी। रेली

136

यदि क्लिपबोर्ड सक्षम है, तो आप चयनित क्षेत्र को क्लिपबोर्ड पर मार कर कॉपी कर सकते हैं "*y

यह देखने के लिए कि क्या यह सक्षम है, चलाएं vim --versionऔर देखें +clipboardया -clipboard। उदाहरण के लिए, यह मेरे 10.5.6 बॉक्स पर डिफ़ॉल्ट रूप से सक्षम नहीं है:

% जो विम
/ Usr / bin / vim
% vim --version
VIM - Vi IMproved 7.2 (2008 अगस्त 9, संकलित Nov 11 2008 17:20:43)
शामिल पैच: 1-22
_Www@b77.apple.com द्वारा संकलित
GUI के बिना सामान्य संस्करण।  शामिल विशेषताओं (+) या नहीं (-): 
... 
-clientserver -clipboard + cmdline_compl + cmdline_hist + cmdline_info + टिप्पणियाँ
 ...

यदि इसे संकलित किया गया था +clipboard, तो मैं "*सिस्टम क्लिपबोर्ड तक पहुंचने के लिए रजिस्टर का उपयोग करने में सक्षम हूं ।

मैंने 7.2 स्रोत डाउनलोड किया और इसे (जैसे ही tar xjf vim-7.2.tar.bz && cd vim72 && ./configure && make && sudo make install) आसान बनाया , और क्लिपबोर्ड को सक्षम किया गया:

% जो विम
/ Usr / स्थानीय / bin / vim
% vim --version
VIM - Vi IMproved 7.2 (2008 अगस्त 9, संकलित मार्च 24 2009 17:31:52)
Rampion@Myrrhy.local द्वारा संकलित
GTK2 GUI के साथ सामान्य संस्करण।  सुविधाएँ शामिल (+) या नहीं (-): 
... 
+ clientserver + क्लिपबोर्ड + cmdline_compl + cmdline_hist + cmdline_info + टिप्पणियां
 ...

हालाँकि, संकलन के बाद भी, मैं टर्मिनल पर कॉपी नहीं कर सका जब टर्मिनल में vim चल रहा था। केवल X11.app में।


3
मैंने + क्लिपबोर्ड के साथ नवीनतम संस्करण संकलित किया और अब देशी क्लिपबोर्ड इसके साथ * रजिस्टर के रूप में काम करता है। इसके अलावा, अपने .vimrc फ़ाइल में "सेट क्लिपबोर्ड = अनाम" सेट करना सिस्टम क्लिपबोर्ड को विशिष्ट बनाता है। मैंने वास्तव में इसे बनाने और संकलित करने के लिए github.com/adamv/homebrew/blob/duplicates/Library/Formula/… का उपयोग किया ।
राडो

हम्म, यह निश्चित नहीं है कि विम मेरे होमब्रे में क्यों नहीं दिखा, लेकिन मैंने इसे कॉपी किया / usr / लोकल / लाइब्रेरी / फॉर्मूला, काढ़ा लगाने के लिए चला, और यह "ld: लाइब्रेरी के साथ विफल रहा -lruby-static के लिए नहीं मिला "। मैं आरवीएम का उपयोग कर रहा हूं और 1.8.7 पर था। जब मैंने 1.9.2 पर स्विच किया तो त्रुटि "ld: लाइब्रेरी नहीं मिली -lruby.1.9.1"। समाधान था रूबी उपयोग प्रणाली को पहले निष्पादित करके सिस्टम रूबी का उपयोग करना।
9

9
शब्द "क्लिपबोर्ड" की खोज करने से थोड़ा आसान है जो आमतौर पर सुविधाओं की एक लंबी सूची है: करते हैं :echo has("clipboard")। यदि यह 0 दिखाता है, तो यह संकलित नहीं है। यदि यह 1 दिखाता है, तो यह है।
रावरोन

3
तुम भी homebrew का उपयोग कर क्लिपबोर्ड के साथ संकलित कर सकते हैं: brew install vim
एंटोन कोवल '

4
सावधान रहें! मेरे पास एक +clipboardसंस्करण था, लेकिन स्थापित किया गया था --with-client-serverजो सक्षम बनाता है +x11, और macOS पर टर्मिनल vim में x11 पर कॉपी / पेस्ट करने की कोशिश कर रहा है :) मुझे इसके बिना पुनर्स्थापित करना पड़ा +clientserver
जाकवह

96

आप नेत्रहीन पाठ और प्रकार का चयन कर सकते हैं :w !pbcopy<CR>

या आप नीचे दिए गए मुख्य मैपिंग को अपनी ~/.vimrcफ़ाइल में शामिल कर सकते हैं । वे ऑपरेटिंग सिस्टम के क्लिपबोर्ड पर दृश्य मोड में पाठ को काट / कॉपी करते हैं।

vmap <C-x> :!pbcopy<CR>  
vmap <C-c> :w !pbcopy<CR><CR> 

स्रोत: http://drydevelopment.com/blog/vim-pbcopy-on-os-x


6
आप कमांड लाइन से पाठ का चयन भी कर सकते हैं जैसे: 1,10 w! क्लिपबोर्ड पर लाइनों को कॉपी करने के लिए pbcopy 1-10। मूल पाठ को रखने के लिए जगह के साथ-साथ w महत्वपूर्ण है। ऊपर दिया गया स्रोत लिंक अब टूट गया है, लेकिन यहां एक चर्चा है: vim.wikia.com/wiki/Mac_OS_X_clipboard_sharing
sdjuan

मैंने tmux में यह काम पाने के लिए इसका अनुसरण किया: superuser.com/questions/231130/…
Wex

@Wex लिंक तय किया गया है
SnoringFrog

2
ध्यान दें कि यह पूरी लाइनों के चयन के लिए काम करता है। यदि आप केवल एक पंक्ति के भाग का चयन करना चाहते हैं तो यह काम नहीं करता है। stackoverflow.com/questions/16196826/…
केविन व्हीलर

1
@ केविन व्हीलर: आप निम्नलिखित आदेश के साथ कोशिश कर सकते हैं जो नॉन-लिनिविज कॉपी को हल कर सकते हैं न ही नीमप <मौन> <नेता> y: <CR>: let @ a = @ "| execute" normal! vgvy "\" को res = system ("pbcopy", @ ") \ | let @ "= @ a <CR>
dragonxlwang

38

दोहरे उद्धरण तारांकन चिह्न ( "*) से पहले किसी भी yank कमांड परिणाम को कॉपी बफ़र में yank करेंगे। यह विंडोज और लिनक्स के लिए भी काम करता है।


11
सिर्फ मेरे लिए एक घंटी चरित्र और कोई अन्य प्रभाव फेंकना करने लगता है
ʞɔıu

3
X11 में, Vim का "* PRIMARY है," + CLIPBOARD है, और SECONDARY को नामांकित रजिस्टर नहीं मिला है। (ऐसा नहीं है कि कोई भी इसका उपयोग करता है ...)
मर्मज्ञ

पूरी तरह से। वास्तव में मदद करता है, विशेष रूप से ब्लॉक चयन (ctrl-v) के साथ।
सोनिक

चूंकि प्रश्न विशेष रूप से मैक ओएस एक्स के बारे में था, इसलिए यह जोड़ना कि यह मैक के लिए काम करता है "भी" अनावश्यक है।
पॉल टॉम्बलिन

@PaulTomblin ठीक है, काफी उचित :-)
अपरेंटिसडेव

26

Macos 10.8 पर, vim का -clipboardउपयोग करने के लिए संकलित किया गया है "*yजिसे आपको recompile करने की आवश्यकता होगी। सौभाग्य से आपके brew install vimलिए एक नया संस्करण आसानी से संकलित होगा और यह होगा +clipboard


1
कुछ ध्यान में रखना - काफी विचित्र, brew install vimअपडेट के साथ vi, और नहीं vim । इसलिए आपको होमब्रे के साथ विम को स्थापित करने के बाद चीजों को अलग-अलग करना पड़ सकता है।
श्रीधरमा

18

पाठ का चयन करें और लिखें:

ggVG
!tee >(pbcopy)

जो मुझे निम्न से अच्छा लगता है:

ggVG
:w !pbcopy

चूंकि यह एक संकेत नहीं देता है: "जारी रखने के लिए ENTER दबाएँ या कमांड टाइप करें"


फिर भी पूरी लाइन को कॉपी करता है
कार्ल पोकस


11

यदि आप MacPorts का उपयोग कर रहे हैं, तो आप क्लिपबोर्ड समर्थन को शामिल करने के लिए अपने VIM को अपग्रेड कर सकते हैं:

port install vim +x +x11

अब आप "+अपने मैक क्लिपबोर्ड पर अपने टेक्स्ट को सीधे yank करने के लिए रजिस्टर का उपयोग करते हैं । एक जादू की तरह काम करता है।


1
यही वह चीज है जिसकी मुझे जरूरत थी। बस यह सुनिश्चित करने की आवश्यकता है कि $ PATH सही है और आपको Apple vim नहीं / opt / local / bin / vim मिल रहा है।
गैरेथ

8

यदि आप MacOS X पर हैं:

$ brew install vim
$ vim --version
VIM - Vi IMproved 7.4 [...]

फिर, अपने .vimrc में जोड़ें:

set clipboard=unnamed

अब आप बस में होना चाहिए vim और कर :%yसभी सामग्री अपने क्लिपबोर्ड में कॉपी करने के लिए,।


सामग्री yanked है, लेकिन मैं VIM के बाहर पेस्ट नहीं कर सकता।
प्रयागपाद

5

Homebrew का प्रयोग करें :brew install vim

Mac (10.10.3 Yosemite के रूप में) एक सिस्टम विम के साथ प्री-इंस्टॉल आता है जिसमें झंडा सक्षम नहीं है clipboard

आप या तो खुद के लिए विम संकलित कर सकते हैं और उस ध्वज को सक्षम कर सकते हैं, या बस Homebrew की विम का उपयोग कर सकते हैं जो ठीक से सेटअप है।

अपने लिए यह देखने के लिए, स्टॉक सिस्टम की जाँच करें /usr/bin/vim --version

आप कुछ इस तरह देखेंगे:

$ /usr/bin/vim --version

VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Nov  5 2014 21:00:28)
Compiled by root@apple.com
Normal version without GUI.  Features included (+) or not (-):
... -clientserver -clipboard +cmdline_compl ...

ध्यान दें -clipboard

Homebrew की विम के बजाय आपको मिलता है

$ /usr/local/bin/vim --version

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled May 10 2015 14:04:42)
MacOS X (unix) version
Included patches: 1-712
Compiled by Homebrew
Huge version without GUI.  Features included (+) or not (-):
... +clipboard ...

ध्यान दें +clipboard


1
फिर नकल कैसे करें?
फ्रोजन फ्लेम

vim के काढ़ा के संस्करण के साथ मैं वह कर पाया जो मैं चाहता था: मैंने Vतब उपयोग की गई लाइनों पर प्रकाश डाला :w !pbcopyऔर इसने काम किया
davidpm4

5

यदि आपका विम क्लिपबोर्ड के साथ संकलित नहीं है, तो आप संपूर्ण लाइनों के बजाय चयनित टेक्स्ट को कॉपी करना चाहते हैं, आप MacVim या अन्य GUI इंस्टॉल नहीं करना चाहते हैं, सबसे सरल उपाय यह है कि आप अपने .vimrc में इस लाइन को जोड़ें:

map <C-c> y:e ~/clipsongzboard<CR>P:w !pbcopy<CR><CR>:bdelete!<CR>

इसका उपयोग करने के लिए, बस उस पाठ का चयन करें जिसे आप कॉपी करना चाहते हैं, और फिर Control- C। यदि आप इस पंक्ति का पूरा विवरण चाहते हैं, तो " व्हाट्स पर क्लिपबोर्ड पर कॉपी कैसे करें " पढ़ें ।


लेकिन इसकी भी मुझे पाठ की नकल के बाद 2 काली लाइनें दे रहा है
निक वानावित

4

मैंनें इस्तेमाल किया:

map <C-x> :!pbcopy<CR>
vmap <C-c> :w !pbcopy<CR><CR>

यह वास्तव में अच्छी तरह से काम किया।


3

आप MacVim का उपयोग तब कर सकते हैं जब आप Mac पर मानक OS कुंजियों का उपयोग करके आसानी से क्लिपबोर्ड तक पहुँच सकते हैं।

यह सामान्य विम के साथ पूरी तरह से पिछड़ा हुआ है, इसलिए मुझे अलग होने की जरूरत नहीं है .vimrc


मैं MacVim का उपयोग करता हूं और फिर डिफॉल्ट ~/binको ओवरराइड करने के लिए कमांड-लाइन vim पर्यायवाची शब्द को सममित करता हूं ।
टिन मैन

2

आदेश-सी? यह कम से कम टर्मिनल के भीतर से लॉन्च किए गए विम के लिए काम करता है। माउस के साथ चयनित पाठ के लिए।


6
अच्छा भोला जवाब, लेकिन अगर आप लंबवत-विभाजन उप-विंडो का उपयोग कर रहे हैं (जो वास्तव में मेरे मन में मामला है), या यदि परिणाम एक टर्मिनल स्क्रीन से अधिक लंबा है, तो इसका उपयोग करता है
uıu

3
आप सही हैं, मैंने इन मामलों के बारे में नहीं सोचा था। मैं अपना जवाब सिर्फ दूसरों को रोकने के लिए छोड़ देता हूं ताकि वे मददगार जवाब न दे सकें।
मौविसील


2

मेरी मुख्य समस्या विम का डिफ़ॉल्ट OSX संस्करण था। होमब्रे के माध्यम से इसे स्थापित +clipboardकरके निर्माण में जोड़ा गया।

आप इसके साथ देख सकते हैं:

vim --version

देखने के लिए अगर यह कहता है -clipboardया +clipboard


2

यदि आपके पास +clipboardअपनी विम इंस्टॉलेशन का विकल्प है (आप के साथ जांच कर सकते हैं :version) और आप दृश्य मोड में हैं तो आप ऐसा कर सकते हैं "+yयह चयन को बफ़र +यानि क्लिपबोर्ड पर भेज देगा।

मैंने अपने vimrc में निम्न नक्शे जोड़े हैं और यह ठीक काम करता है।

vmap <leader>y "+y : इससे मैं विज़ुअल मोड में क्लिपबोर्ड पर कॉपी करने के लिए leader keyफॉलो कर सकता हूं y

nmap <leader>p "+p : इसके साथ मैं सामान्य मोड पर क्लिपबोर्ड से चिपकाने के लिए leader keyअनुसरण कर सकता हूं p

PD: Ubuntu पर मुझे +clipboardविकल्प प्राप्त करने के लिए vim-gtk इंस्टॉल करना पड़ा ।


0

मैक पर जब कुछ और काम करने लगता है - माउस के साथ चुनें, राइट क्लिक कॉपी चुनें। uff


0

मैं वर्तमान में OS X 10.9 पर हूं और + xterm_clipboard के साथ विम संकलित करने के मेरे प्रयासों ने मुझे कुछ नहीं दिया। तो मेरा वर्तमान समाधान मेरी ~ / .vimrc फ़ाइल में विकल्प के साथ टर्मिनल मोड में MacVim का उपयोग करना है set clipboard=unnamed। मेरे लिए एकदम सही काम करता है।


0

मेरे लिए मेरे में क्या काम किया .vimrc

set clipboard=unnamed
if has("unnamedplus") " X11 support
    set clipboard+=unnamedplus
endif

0

Mac के लिए - टेक्स्ट को सेलेक्ट करते समय optionउसके बाद की होल्डिंग की जाती है ctrl V


0

Shift cmd c - कॉपी मोड सेट करें माउस खींचें, पेस्ट करने के लिए चयनित टेक्स्ट Cmd v कॉपी करने के लिए टेक्स्ट, cmd c चुनें


-1

उबंटू उपयोगकर्ताओं के लिए, क्लिपबोर्ड का उपयोग करने के लिए आप जिस पैकेज को प्राप्त करना चाहते हैं, वह विम-फुल है। अन्य पैकेज (vim- छोटे, vim) में क्लिपबोर्ड सुविधा शामिल नहीं है।


vim-full अब एक ubuntu पैकेज नाम नहीं है। डिफ़ॉल्ट विम पैकेज (7.3.154) में -क्लिपबोर्ड सहित सुविधाओं का एक न्यूनतम सेट है। Vim-gtk या vim-nox स्थापित करने से एक + क्लिपबोर्ड संस्करण उपलब्ध होगा।
१२:

-1

रजिस्टर '+' या '*' का उपयोग करके क्लिपबोर्ड पर नकल करना काम नहीं कर रहा है?

कारण: विम का आपका विशेष संस्करण क्लिपबोर्ड समर्थन के बिना संकलित किया गया था। टाइप करें विम - कंसोल पर और आपको -xterm_clipboard दिखाई देगा । गिनी संकुल के साथ विम स्थापित करना इस समस्या को हल करता है। Ubuntu पर आप शेल पर टाइप करके ऐसा कर सकते हैं:

sudo apt-get install विम-गुई-आम

अब फिर से कंसोल पर vim --version करें। अब शायद, आप + xterm_clipboard देख रहे होंगे !!

तो, अब आप रजिस्टर + का उपयोग करके क्लिपबोर्ड पर कुछ भी कॉपी कर सकते हैं (जैसे "+ yy वर्तमान लाइन को क्लिपबोर्ड पर कॉपी करने के लिए)


-1

मैं एक ही मुद्दे को पूरा, स्थापित करने के बाद macvim अभी भी काम नहीं कर रहा , आखिरकार मुझे हल करने का एक तरीका मिला:

पहले सभी विम की स्थापना रद्द करने का प्रयास करें,

brew uninstall macvim

brew uninstall --force vim

और macvim को पुनर्स्थापित करें

brew install macvim --with-override-system-vim

तो आप का उपयोग कर सकते हैं "*yया "+y, के लिए नहीं हैset clipboard=unnamed


-2

कमांड-सी मेरे लिए मैकविम और टर्मिनल दोनों में काम करता है।


पारंपरिक कॉपी और पेस्ट विम बफ़र्स के साथ काम नहीं करता है और आपके स्वरूपण को पूरी तरह से गड़बड़ कर सकता है। उदाहरण के लिए, Cmd + C के साथ नेस्टेड ऑब्जेक्ट्स की 15 लाइनें कॉपी करना और फिर Cmd + V के साथ चिपकाने से यह नेस्टिंग की समझ खो देगा। यह बहुत संभावना आपके .vimrc में आपकी सेटिंग्स पर निर्भर करता है और बहुत खास हो सकता है
netpoetica
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.