2010-03-09 2 views
10

में संभावित रूप से 2 प्रश्नों में उपयोग करें। मैं जानना चाहता हूं कि पूर्व मोड में एक रजिस्टर का संदर्भ कैसे लें।विम रजिस्टर पूर्व मोड

उदाहरण के लिए, मैं एक फ़ाइल संपादित कर रहा हूं और मैं फ़ाइल को टाइमस्टैम्प (या वास्तव में केवल डाटेस्टैम्प) के साथ सहेजना चाहता हूं।

मैं जानता हूँ कि मैं एक खोल के मूल्य रजिस्टर सेट कर सकते हैं का उपयोग कर उत्पादन आदेश:

:let @a = system("date +\"%Y-%m-%d\"") 

इस रजिस्टर भिन्नता वहाँ है किसी भी करने के लिए और एक पूर्व आदेश में अपने मूल्य डालने? की तरह कुछ: सिस्टम क्लिपबोर्ड और चिपकाने के लिए

:w testfile.<value of "a register> 

प्रतिलिपि बनाई जा रही अच्छा होगा, लेकिन भविष्य में अन्य आदेशों पर निर्माण के लिए एक अधिक सामान्य/programitic तरीके से कर रही है अच्छा होगा।

उत्तर

11

ऐसा करने के दो दृष्टिकोण हैं, लेकिन शायद न तो आप वही हैं जो आप चाहते हैं।

  1. उपयोग <CTRL-R>a वर्तमान कमांड लाइन में सामग्री सम्मिलित करने के। अधिक जानकारी के लिए :help c_CTRL-R देखें।

  2. अभिव्यक्ति में चर के सम्मिलन की अनुमति देने के लिए exe का उपयोग करें। :help :exe और :help 41.3 देखें।

    :exe 'w testfile.' . @a 
    
1

रजिस्टर "एक" यह मानते हुए, आप टाइप कर सकते हैं:

<CTRL-R>a जो होगा इनपुट उस बिंदु पर एक इनलाइन रजिस्टर का मूल्य। इसका उपयोग सम्मिलित मोड में भी किया जा सकता है।

+0

हाँ, में पेस्ट के बिना यह करने के लिए एक रास्ता तलाश, उस के बारे में पता था। कोई विशेष कारण है, लेकिन कुछ है जो होगा स्वचालित रूप से चर dereferences के लिए अच्छा होगा – Peck