जवाबों:
जबकि इन्सर्ट मोड हिट में CTRL-R {register}
उदाहरण:
CTRL-R * क्लिपबोर्ड की सामग्री में सम्मिलित करेगा CTRL-R " (अनाम रजिस्टर) अंतिम डिलीट या यैंक सम्मिलित करता है। विम के सहायता प्रकार में इसे खोजने के लिए :h i_ctrl-r
CTRL-R *केवल जीवीआईएम या संस्करणों में काम करता है जिन्हें एक्स के साथ बातचीत करने के लिए संकलित किया जाता है। टाइप करें vim --versionऔर देखें +xterm_clipboard। यदि आपके पास ऐसा नहीं है, तो आपको विम के अलग संस्करण की आवश्यकता है। ( vim.wikia.com/wiki/Accessing_the_system_clipboard )
+clipboard, लेकिन अगर आपके पास +xterm_clipboardआपके पास वैसे भी होना चाहिए। कुछ OS पर xterm_clipboardलागू नहीं है।
*रजिस्टर, मध्य-माउस-क्लिक के साथ पारंगत +है, जबकि पारंपरिक कॉपी / पेस्ट है। मानकों.
यदि आप नहीं चाहते हैं कि आने वाले पेस्ट किए गए पाठ में फ़ॉर्मेटिंग को कम करने के लिए विम का उपयोग किया जाए, तो आप इसका उपयोग करने पर भी विचार कर सकते हैं :set paste:। यह आपके कोड को फिर से टैब करने से विम को रोक देगा। जब पेस्ट किया जाता है, :set nopasteतो सामान्य व्यवहार पर वापस आ जाएगा।
set pastetoggle=<F2>अपने .vimrc जैसा कुछ जोड़कर मोड को एक एकल कुंजी के साथ टॉगल करना भी संभव है । ऑटो-इंडेंट पर टॉगल करने के बारे में अधिक जानकारी यहाँ हैं ।
:set nopasteपेस्ट मोड को निष्क्रिय कर देगा
:set paste!संभवत: सेट है पेस्ट आपके कमांड इतिहास में बहुत करीब है, इसलिए आप बस 'दबा सकते हैं': ', फिर तीर-अप और एक'! 'जोड़ें।
:set paste! धन्यवाद के बारे में क्या बेहतर या अलग है :)
!में आदेश के अंत में vimटॉगल चालू और बंद आदेश। इस तरह से आपको टाइप :set nopasteकरने की बजाय अपने इतिहास को स्क्रॉल करने और उसी कमांड ( :set paste!) को फिर से चलाने की जरूरत नहीं है ।
सीधे तौर पर नहीं। यद्यपि आप एक सामान्य मोड ऑपरेशन के लिए जल्दी से सम्मिलित मोड से बाहर निकल सकते हैं, लेकिन Ctrl-Oफिर वहां से पेस्ट करें जो आपको डालने के मोड में वापस डाल देगा।
मुख्य कॉम्बो: Ctrl-O p
संपादित करें: दिलचस्प। ऐसा प्रतीत होता है कि एक तरीका है जैसा कि कई अन्य लोगों ने सूचीबद्ध किया है।
esc + p?
esc + p + iऔर निश्चित रूप से टाइप करने में आसान हैCTRL-R + "
CTRL-R "। उदाहरण के लिए, हालांकि vimrc सेटिंग्स इसे बदल सकती हैं, किसी नई लाइन में किसी चीज को चिपकाने CTRL-O pसे उसका इंडेंटेशन चला जाता है।
इन्सर्ट मोड में, आप उपयोग कर सकते हैं Ctrl-R {register}, जहाँ रजिस्टर हो सकता है:
+ क्लिपबोर्ड के लिए,* X क्लिपबोर्ड के लिए (X में अंतिम चयनित पाठ), " अनाम रजिस्टर के लिए (विम में अंतिम डिलीट या यान),:h registers)।Ctrl-R {register} पाठ को सम्मिलित करता है जैसे कि यह टाइप किया गया था।
Ctrl-R Ctrl-O {register} मूल इंडेंटेशन के साथ पाठ सम्मिलित करता है।
Ctrl-R Ctrl-P {register} पाठ सम्मिलित करता है और ऑटो-इंडेंट करता है।
Ctrl-Oइंसर्ट मोड में लौटने से पहले किसी भी सामान्य मोड कमांड को चलाने के लिए इस्तेमाल किया जा सकता है, इसलिए
Ctrl-O "+pइसका भी उपयोग किया जा सकता है, उदाहरण के लिए।
अधिक जानकारी के लिए, के साथ प्रलेखन देखें :h i_ctrl-r
आप इसका उपयोग क्लिपबोर्ड से चिपकाने के लिए कर सकते हैं Ctrlv:
set pastetoggle=<F10>
inoremap <C-v> <F10><C-r>+<F10>
और इसके साथ क्लिपबोर्ड में दृश्य चयन को yanking के लिए Ctrlc:
vnoremap <C-c> "+y
यदि आप सामान्य मोड में क्लासिक विम यैंकिंग / पेस्टिंग ( y/ p) के लिए डिफ़ॉल्ट रूप से क्लिपबोर्ड का उपयोग करना चाहते हैं , तो यहां एक कॉन्फ़िगर विकल्प है जो इसे करता है:
set clipboard=unnamedplus
इस कॉन्फ़िगरेशन के साथ आप सामान्य मोड में पहले yank कर सकते हैं और फिर Ctrlvइन्सर्ट मोड में पेस्ट कर सकते हैं । इसके अलावा, आप विभिन्न विम इंस्टेंस और अलग-अलग एप्लिकेशन से टेक्स्ट पेस्ट कर सकते हैं।
एक अन्य विकल्प है:
set clipboard=unnamed
तब आप अपने X वातावरण में माउस घसीट कर बस कुछ चुन पाएंगे और बाद में इसे पेस्ट कर सकते हैं। लेकिन (किसी कारण से) आप yविम ( और) में कुछ नहीं कर पाएंगेshiftinsert और उसके बाद कहीं और , जो संभवतः काफी सीमित है।
विम डॉक्स इसके बारे में: http://vim.wikia.com/wiki/Accessing_the_system_clipboard
कस्टम रजिस्टरों से चिपकाने के लिए आप अन्य उत्तरों का अनुसरण कर सकते हैं :)। यह उत्तर मुख्य रूप से आपके सिस्टम क्लिपबोर्ड के साथ विम को एकीकृत करने के बारे में है।
ध्यान दें कि set clipboard=unnamedplusऔर set clipboard=unnamedकाम करने के लिए, आपको gvim या vimx ( vim-X11) का उपयोग करने की आवश्यकता है : जिनका संकलन किया गया है +xterm_clipboard। आप वैकल्पिक रूप से अपने में डाल सकते हैं .bashrcउर्फ करने के vimसाथ vimx:
if [ -e /usr/bin/vimx ]; then
alias vim='/usr/bin/vimx'; # vim with +xterm_clipboard
fi
आप यह जान सकते हैं कि आपके विम को +xterm_clipboardदी गई जानकारी में जानकारी है या नहीं vim --version।
:set pasteऔर बायज़ेंटाइन <leader><leader> * yका डिफ़ॉल्ट व्यवहार दूरस्थ रूप से वांछनीय है? ध्वनि के लिए प्रतिबद्ध नहीं, मैं वास्तव में उत्सुक हूं कि यह किस दर्शन को दर्शाता है, या यदि यह सिर्फ एक ऐतिहासिक दुर्भाग्य है।
inoremap <S-Insert> <F12><C-r>+<F12>(मैं पास्टॉग्लॉग के रूप में F12 का उपयोग करता हूं)। धन्यवाद।
यदि आप सिस्टम क्लिपबोर्ड ( :set clipboard=unnamed) का उपयोग करने के लिए विम सेट करते हैं , तो विम में कॉपी किए गए किसी भी पाठ को Shift+ का उपयोग करके चिपकाया जा सकता है Insert। Shift+ Insertबस एक ओएस-वाइड पेस्ट कुंजी-संयोजन है ( Ctrl+ Insertइसी 'कॉपी' है)।
pक्लिपबोर्ड में टेक्स्ट पेस्ट करेंगे ?
Shift + Insertपाठ को चिपकाने के लिए उपयोग करने से पहले , हमें सम्मिलित मोड में होना चाहिए।
आप माउस मिड बटन का उपयोग इन्सर्ट मोड (केवल लिनक्स) में पेस्ट करने के लिए भी कर सकते हैं।
आप के -- INSERT (past) --माध्यम से मोड में प्रवेश कर सकते हैं :
या
:set pasteऔर डालने मोड ( :set nopasteनिष्क्रिय करने के लिए)एक बार -- INSERT (past) --मोड में बस अपने सिस्टम पेस्ट फ़ंक्शन का उपयोग करें (जैसे CtrlShiftvलिनक्स पर,Cmdv पर मैक ओएस पर)।
यह रणनीति बहुत उपयोगी है जब ssh पर विम का उपयोग करें।
हाँ। विंडोज Ctrl+ मेंV और लिनक्स में दोनों माउस बटन को लगभग एक साथ दबाते हैं।
विंडोज में मुझे लगता है कि मेरे _vimrc में यह लाइन शायद यही करती है:
source $VIMRUNTIME/mswin.vim
लिनक्स में मुझे याद नहीं है कि मैंने यह कैसे किया। ऐसा लगता है कि मैंने शायद डिफ़ॉल्ट .vimrc फ़ाइल से कुछ लाइन हटा दी है।
इस मामले में एक कस्टम मानचित्र उचित लगता है। यह है कि मैं डालने मोड में yanked आइटम पेस्ट करने के लिए उपयोग करें:
inoremap <Leader>p <ESC>pa
Leaderयहाँ मेरी कुंजी है \; इसका मतलब यह है कि \pइंसर्ट मोड में मारने से पहले से तैयार की गई वस्तुएं / रेखाएं चिपक जाएंगी।
बस मानचित्र जोड़ें:
" ~/.vimrc
inoremap <c-p> <c-r>*
विम को पुनरारंभ करें और जब Crtl+pइन्सर्ट मोड में प्रेस करें तो कॉपी किया हुआ टेक्स्ट पेस्ट किया जाएगा