2009-09-29 17 views
7

पर जाँचने में बहु लाइन स्ट्रिंग पेस्ट करें जब मैं (जैसे) से एक दो लाइन पाठ की प्रतिलिपि एक पीडीएफ CTRL-V का उपयोग कर जाँचने में एक्रोबैट रीडर में खोला गया, पाठ में रेखा से ऊपर डाला जाता है gvim जहां मैं की जगह पर स्थित था, जहां मेरा कर्सर है। (परिदृश्य: मैं एक दस्तावेज़ शीर्षक की प्रतिलिपि बनाना चाहता हूं जो दो पंक्तियों में फैला हुआ है और इसे gvim में एक HTML टैग के बीच पेस्ट करें)।कर्सर स्थिति

यदि मैं पाठ की एक पंक्ति के साथ ऐसा करता हूं, पाठ कर्सर की स्थिति पर सही ढंग से चिपकाया जाता है।

इसे दो-पंक्तियों के पाठ के साथ भी काम करने के लिए क्या करना चाहिए (उदाहरण के लिए 'फ़ॉर्मेटिंग के बिना पेस्ट')?

महत्वपूर्ण: चिपकने वाली स्ट्रिंग में कैरिज रिटर्न (या कुछ समान) से अलग दो लाइनें होती हैं!

समाधान

वहाँ वास्तव में दो मान्य समाधान हैं:

  • CTRL-आर * कर्सर की स्थिति में पेस्ट करने के लिए उपयोग कर रहा है (और क्लिपबोर्ड सामग्री बहु लाइन रखने)
  • एक कर क्लिपबोर्ड स्ट्रिंग में सभी कैरिज रिटर्न को प्रतिस्थापित करने के लिए पेस्ट कमांड को रीपैप करना

उत्तर

9

सबसे पहले बहाल करने के लिए ऐसा लगता है CTRL-V कुछ करने के लिए मैप किया गया है, क्योंकि आम तौर पर विम में चिपकाने का उपयोग नहीं किया जाता है बफर

:set nopaste 

में कुछ पेस्ट CTRL-V (CTRL-V दृश्य ब्लॉक है)।

दूसरा व्यवहार जो आप देख रहे हैं वह मानक vi [m] व्यवहार है, यदि आप एक या अधिक संपूर्ण रेखाओं को झुकाते हैं, तो पेस्टिंग हमेशा मौजूदा लाइन के ऊपर या नीचे एक या अधिक पंक्तियों का परिणाम देगा।

मैं जो भी करने की कोशिश कर रहा हूं उसे प्राप्त करने के लिए मुझे किसी भी अंतर्निहित तरीके से नहीं पता। लेकिन आप हमेशा यानी कुछ करने के लिए CTRL-V कि आप क्या चाहते हैं क्या करता है,

:map <C-V> i<CR><Esc>"*P 

पुन: मैप सकता है कि चिपकाने कई पंक्तियों के बाद पात्रों अपने कर्सर पर था के बीच होगा, लेकिन इस remapping शायद नहीं है कि आप क्या चाहते हैं अन्य मामले

संपादित

ठीक है, मैं एक और रास्ता मिल गया।

डालने मोड में

है, प्रकार

CTRL-R * 

इस स्थान कर्सर पर है पर क्लिपबोर्ड बफर की सामग्री पेस्ट होगा।

+0

आह से चिपक जाती हैं, आखिर में कोई मेरी समस्या को समझने वाला :-) मैं देखता हूं कि आप क्या करने की कोशिश कर रहे हैं, और यह वास्तव में केवल आधे कामकाजी कामकाज है। अजीब है कि vim इसे संभाल नहीं सकता ठीक है। क्या वीआईएम में चिपकाने से पहले बफर (क्लिपबोर्ड) में कैरिज रिटर्न को हटाने का कोई तरीका नहीं है? (बीटीडब्ल्यू: गैर-मानक ctrl-v शॉर्टकट यहां समस्या नहीं है) – Rabarberski

+1

आह, आपका CTRL-R * अपडेट मेरे लिए यह कर रहा है! – Rabarberski

1

शॉर्टकट का उपयोग करें p और P (कर्सर के बाद और बाद में पेस्ट करें)। सिस्टम रजिस्टर (विंडोज क्लिपबोर्ड, आपके मामले में), या "+ (यूनिक्स के लिए) की सामग्री निर्दिष्ट करने के लिए "* जोड़ें।

  • "*P पेस्ट के बाद कर्सर
  • "*y प्रतिलिपि (दृश्य क्षेत्र, या एक पोस्टफ़िक्स विम कह "क्या" कॉपी करने के लिए ले जाता है)

    • "*p पेस्ट कर्सर से पहले
    • :

      तो, आप उपयोग कर सकते हैं

    • "*d कट (दृश्य क्षेत्र, या पोस्टफिक्स के साथ)

    और बहुत आगे।

  • +0

    पी और पी चिपकाता वीआईएम बफर से, विंडोज क्लिपबोर्ड से नहीं, इसलिए यह इस मामले में काम नहीं करता – Rabarberski

    +0

    उस हिस्से को याद किया गया, जानकारी जोड़ने के लिए संपादित किया गया। –

    +0

    हम्म, टिप के लिए धन्यवाद, लेकिन यह अभी भी काम नहीं करता है। यह कर्सर की स्थिति – Rabarberski

    1

    कर्सर की स्थिति पर विंडोज क्लिपबोर्ड से जीवीआईएम में पेस्ट करने के लिए

    "+gP
    डबल कोट को न भूलें।

    +0

    पर स्थित स्थान के ऊपर चिपकाया जाता है, सवाल यह नहीं था कि पेस्ट कैसे किया जाए, लेकिन कर्सर पर पेस्ट करने के लिए कैसे क्लिपबोर्ड सामग्री में दो लाइनें हैं (कैरिज रिटर्न द्वारा अलग) – Rabarberski

    +0

    मेरा मानना ​​है मैं आपका प्रश्न समझ गया। क्या आप कह रहे हैं कि आपने "जीपी" की कोशिश की और यह काम नहीं किया? यह मेरे लिए करता है। –

    +0

    मैंने अपनी प्रतिक्रिया अपडेट की है ताकि यह सीधे आपके प्रश्न का उत्तर दे। –

    1
    :set paste 
    

    इससे पहले कि आप स्वरूपण सेटिंग्स

    +0

    अच्छा प्रयास करें, लेकिन मेरे लिए काम नहीं करता है। 2 लाइनें अभी भी मौजूदा लाइन – Rabarberski

    2

    (तुम भी अन्य बफ़र्स की सामग्री चिपकाने के लिए इस का उपयोग कर सकते हैं) आप इसे से पेस्ट करने से पहले एक रजिस्टर से नई-पंक्तियों उन्हें हटाना चाहते हैं, तो आप अभिव्यक्ति रजिस्टर "= उपयोग कर सकते हैं:

    :map <C-v> "=substitute(@*, "\n", " ", "g")<CR>p 
    
    +0

    बहुत अच्छी टिप। यह मुझे कुछ प्रयोग करने के लिए कुछ प्रयोग करता है जब यह सम्मिलित मोड में नहीं होता है। लेकिन मैं इसका उपयोग कर सकता हूं: इसे मानचित्रण करने के लिए भी imap। धन्यवाद! – Rabarberski

    +0

    छोटा अद्यतन: मैपिंग कमांड के अंत में पी के बजाय पी का उपयोग करके आप समाधान कर चुके हैं। यह कर्सर के बाद चिपकाता है, जो मेरे लिए अधिक प्राकृतिक लगता है। – Rabarberski

    संबंधित मुद्दे