2012-09-05 13 views
8

से चयनित टेक्स्ट (आंशिक रेखा) सहेजें, मैं विम से कुछ चयनित पाठ (रेखा का हिस्सा) सहेजने का प्रयास करता हूं। यहाँ लाइन है:विम

इस परीक्षण स्ट्रिंग - SELECTED_TARGET_WORLD

जहां बोल्ड चयन पाठ प्रतिनिधित्व करता है। मैं यह कर:

:'<,'> w! test/selected_text 

लेकिन फाइल selected_text में मैं स्ट्रिंग लगता है:

THIS TEST STRING - SELECTED_TARGET_WORLD 

मैं इसे कैसे लाइन के केवल चयनित हिस्सा बचाने कर सकता हूँ?

+0

संभव डुप्लिकेट , फ़ाइल में आंशिक रेखा कैसे लिखें?] (http://stackoverflow.com/questions/1953056/in-vim-how-to-write-a-partial-line-to-a-file) – Gilles

उत्तर

4

:[range]w filename केवल लाइनों के साथ काम करता है ... आपको चयनित टेक्स्ट को अपनी लाइन पर रखना होगा।

एक वैकल्पिक :help :redir का उपयोग कर:

:'<,'>"ay 
:redir filename 
:echo @a 
:redir END 
4

कि मामले सहायता (:h :w), लेकिन :w में दर्ज नहीं किया गया है केवल लाइन पर्वतमाला (आप देखा होगा कि कई लाइनों की एक उदाहरण पर) संभालती है।

जो भी आप चाहते हैं उसे करने के लिए, आपको पहले अपने चयन को अस्थायी बफर (या अपनी लाइन पर और फिर इसे वापस स्थान पर रखें) और फिर उस बफर को सहेजना होगा। अगर यह ऐसा कुछ होता है जिसे आप अक्सर करने वाले होते हैं तो इसे आसानी से स्वचालित किया जा सकता है।

+6

यह है दस्तावेज, लेकिन यह vi के समृद्ध इतिहास के साथ मिश्रित है: सभी पूर्व आदेश केवल पूर्ण लाइन श्रेणियों पर काम करते हैं; दृश्य चयन एक विम एक्सटेंशन है, और इसलिए कुछ अंतर्निहित मॉडल के साथ बाधाओं में है। –

2

मैं इस तरह यह करना, यूगोस्लाविय ~

एक बार जब आप "दृश्य मोड" अपनी सामग्री के आंशिक का चयन किया है, प्रेस Ctrl-C को गति प्रदान करने के लिए इसे

vmap <C-c> y:new ~/.vimbuf<CR>VGp:x<CR> 
[vim में की