2009-03-27 17 views
5

क्या कोई साधारण कमांड है जो एक खिड़की से दूसरे विंडो में स्थानांतरित करेगा। वर्तमान में मैं एक खिड़की पर जाता हूं, रेखाओं को झुकाता हूं, और फिर दूसरी खिड़की में पेस्ट करता हूं।एक खिड़की से दूसरे विंडो में चलती लाइनें

मैं जानना चाहता हूं कि मैं विंडोज़ स्विच किए बिना इसे कर सकता हूं या नहीं।

+0

आप अपने समस्या में और वर्णनात्मक होना चाहिए। क्या आप कट और पेस्ट करने के लिए आसान तरीका खोजने की कोशिश कर रहे हैं? –

+0

मैं ऐसा कुछ ढूंढ रहा हूं जिसके लिए मुझे विंडोज़ स्विच करने की आवश्यकता नहीं है। –

+0

यदि आप विंडोज़ स्विच नहीं करते हैं, तो विम कैसे पता चलेगा कि आप पेस्ट करना चाहते हैं? – strager

उत्तर

7

मैं इस तरह की चीज मैक्रो के साथ करूंगा। तो एक के लिए एक मैक्रो रिकॉर्ड करने के लिए, क्यूए। फिर yy लाइन को yank करने के लिए, बफर स्विच करने के लिए bnext, लाइन पेस्ट करने के लिए पी, फिर मूल बफर (जिस लाइन पर आपने शुरू किया था) पर वापस स्विच करने के लिए फिर से bnext। फिर रिकॉर्डिंग को रोकने के लिए क्यू दबाएं।

तो कॉपी करने के लिए, विंडोज़ स्विच करें, पेस्ट करें फिर वापस स्विच करें, आपको बस @ ए का उपयोग करने की आवश्यकता है। या इसे फ़ंक्शन कुंजी (मानचित्र @ ए) पर मैप करें।

एनबी। टिप्पणियों में बस ध्यान दिया कि आपके पास एकाधिक बफर थे, इसलिए जाहिर है कि आपको तदनुसार अपने मैक्रो को रिकॉर्ड करना होगा।

+0

मुझे लगता है कि मुझे ऐसा करना पड़ सकता है। मैक्रोज़ का प्रयोग करें या एक स्क्रिप्ट लिखें। –

+0

मुझे लगता है कि यह इस तरह से बहुत सहज है। विम मैक्रोज़ आपका दोस्त हैं;)। – RedBlueThing

1

मुझे संदेह है कि यह संभव है या नहीं। लेकिन यहां एक दिलचस्प पोस्ट about 100 Vim commands है प्रत्येक प्रोग्रामर को पता होना चाहिए कि क्या आप रुचि रखते हैं।

2

विमडिफ़ का उपयोग करके आप बफर के बीच परिवर्तनों की प्रतिलिपि बनाने के लिए diffput या diffget का उपयोग कर सकते हैं। मैनुअल से:

There are two commands to copy text from one buffer to another. The result is 
that the buffers will be equal within the specified range. 


         *:diffg* *:diffget* 
:[range]diffg[et] [bufspec] 
    Modify the current buffer to undo difference with another 
    buffer. If [bufspec] is given, that buffer is used. 
    Otherwise this only works if there is one other buffer in diff 
    mode. 
    See below for [range]. 


         *:diffpu* *:diffput* 
:[range]diffpu[t] [bufspec] 
    Modify another buffer to undo difference with the current 
    buffer. Just like ":diffget" but the other buffer is modified 
    instead of the current one. 
    See below for [range]. 
+0

मैं vimdiff सीख रहा हूं (मैंने विंडोज़ में मर्ज करने के लिए तुलना से परे उपयोग किया है) और विमडिफ विलय के लिए एक महान उपकरण होता है। मक्खी विलय पर कोई प्रोग्रामिंग नहीं। मैं इस तरह की चीज़ के लिए स्क्रिप्ट लिखना नहीं चाहता हूं। कुछ वीआई कमांड सीखना बहुत दर्दनाक नहीं है। –

1

आप इस मानचित्रण की कोशिश कर सकते:

nmap <C-y> Y<C-w>wp<C-w>w 
संबंधित मुद्दे