2012-02-06 21 views
15

में चयनित फ़ाइल को चयनित फ़ाइल में संलग्न या प्रीपेड करें, क्या विम में चयनित पाठ को <current_file>.bak में जोड़ने या जोड़ने का कोई तरीका है? यदि संभव हो, तो बैकअप फ़ाइल प्रदर्शित नहीं की जानी चाहिए।विम

मैं कार्यप्रवाह कल्पना होने के लिए:

  1. कुछ पाठ का चयन
  2. प्रकार :sbak
  3. चयन में सहेजा जाता है <current_file>.bak

उत्तर

26

  • प्रकार Shift-वीजे ... जे
  • प्रकार :'<,'>w! >>file.bak बचत करने के लिए कुछ लाइनों का चयन करने के लिए: आप तीन चरणों में यह कर सकते हैं ई file.bak (संलग्न)
  • प्रकार जीवी यदि आप चाहें तो एक उपयोगकर्ता परिभाषित आदेश Sbak लिख सकते हैं मूल लाइनों

नष्ट करने के लिए करने के लिए चयनित लाइनों:

com! -nargs=1 -range Sbak call MoveSelectedLinesToFile(<f-args>) 
fun! MoveSelectedLinesToFile(filename) 
    exec "'<,'>w! >>" . a:filename 
    norm gvd 
endfunc 
+0

अच्छा, अब और कदम: 1. स्वत: उपयोग .bak के रूप में बाक फ़ाइल नाम 2. संलग्न न करें। thx। – greatghoul

+0

वर्तमान फ़ाइल नाम – kev

+0

thx प्राप्त करने के लिए 'विस्तृत ('%: t')' का उपयोग करें, मुझे मिल गया, मैं इसे शॉर्टकट – greatghoul

10

क्या

के बारे में
  1. वी
  2. कुछ आंदोलन आदेश/यहां तक ​​कि पाठ
  3. :'<,'> w! >> /YOUR/SELECTIONFILE
  4. :'<,'>d

है कि आप क्या चाहते हैं का चयन करने के खोज? यदि ऐसा है तो इसके लिए एक map, की स्थापना की तरह

map <F2> :'<,'> w! >> /YOUR/SELECTIONFILE<cr>:'<,'>d<cr> 

नोट इस SELECTIONFILE, और न केवल चयन, लेकिन पूरी लाइनों को जोड़ देता है। इसके अलावा, पढ़ :h :w और :h ++opt (जिसमें आप जैसे फ़ाइलों लेखन() आप अलग एन्कोडिंग, जो वास्तव में चीजों को खराब करता के साथ एक फ़ाइल को संलग्न कर सकते हैं के लिए संभव विकल्पों के बारे में जान सकते हैं, ऐसा नहीं करते हैं कि ;-)