जवाबों:
मुझे यकीन है कि ऐसा करने के अन्य तरीके भी हैं ... लेकिन मुख्य कमांड :r[ead]जो आप चाहते हैं जो बफर में कमांड के आउटपुट को सम्मिलित करता है।
तो, केवल फ़ाइल नाम डालने के लिए:
:r! echo %
और, पूर्ण पथ को शामिल करने के लिए:
:r! echo %:p
अधिक जानकारी के लिए:
:help read
:help filename-modifiers
वर्तमान फ़ाइल नाम "%रजिस्टर में है, इसलिए आप इसे (इन्सर्ट मोड में) डाल सकते हैं <c-r>%; पूर्ण पथ के साथ डाला जा सकता है <c-r>=expand("%:p")। यदि आप इसे अक्सर उपयोग करते हैं, तो आप इसका एक मैक्रो बना सकते हैं। अधिक, समान चाल के लिए, देखें :h expandऔर :h "=।
<c-r>निर्दिष्ट करता है कि अगला वर्ण एक रजिस्टर है।
"%pसामान्य या दृश्य मोड में भी कर सकते हैं।
जैसा कि देखा जा सकता है :h registers, "%रजिस्टर में वर्तमान फ़ाइल नाम है। :pu[t]आदेश पाठ में एक रजिस्टर की सामग्री को सम्मिलित करता है।
इसलिए, वास्तविक फ़ाइल नाम सम्मिलित करने के लिए, आप कमांड मोड में इनमें से कोई भी टाइप कर सकते हैं:
:put %
या
"%p
पूर्ण पथ के साथ फ़ाइल नाम सम्मिलित करने के लिए, टाइप करें
:put=expand('%:p')
कमांड मोड में।
और जानकारी:
:h pu[t]
टाइप करके "rpआप रजिस्टर की सामग्री को पेस्ट कर सकते हैं "r।
:put "%:p"मेरे लिए काम करने के लिए प्रतीत नहीं होता। यह केवल विस्तार () के साथ काम करने लगता है , जैसे: :put =expand('%:p')इसमें <c-r>=expand('%:p')दुर्भाग्य से कम बोझिल नहीं है ।
एक आसान तरीका है:
!!echo %
!! वर्तमान लाइन को कमांड के परिणाम के साथ प्रतिस्थापित कर रहा है।
% इसे कमांड में संपादित फ़ाइल के नाम से बदल दिया जाता है, इसलिए यह उस नाम को संपादित फ़ाइल में प्रभावी रूप से सम्मिलित करेगा।
फ़ाइल नाम वह है जिसे आप vi (m) कमांड में पास करते हैं और इसमें कोई रिश्तेदार या निरपेक्ष पथ हो सकता है। क्या आप इसे छीनना चाहते हैं और केवल फ़ाइल नाम को बनाए रखना चाहते हैं, चलाएँ
!!basename %
यदि आपको बार-बार ऐसा करने की आवश्यकता है, तो http://vim.wikia.com/wiki/Insert_current_filename के अनुसार, यह एक महत्वपूर्ण अनुक्रम बाँधने के लिए उपयोगी हो सकता है।
कर्सर स्थान पर एक्सटेंशन के बिना वर्तमान फ़ाइल नाम सम्मिलित करता है, जब आप सम्मिलित मोड में होते हैं।
:inoremap \fn <C-R>=expand("%:t:r")<CR>विस्तार का उपयोग रखने के लिए:
:inoremap \fn <C-R>=expand("%:t")<CR>निर्देशिका का पूर्ण पथ डालने के लिए फ़ाइल उपयोग में है:
:inoremap \fn <C-R>=expand("%:p:h")<CR>निर्देशिका के सापेक्ष पथ को सम्मिलित करने के लिए फ़ाइल उपयोग में है:
:inoremap \fn <C-R>=expand("%:h")<CR>
उपरोक्त सभी vimसत्र के लिए सीधे काम करते हैं , या आप इसे .vimrc(जहां लाइन पर अग्रणी बृहदान्त्र वैकल्पिक है) में डाल सकते हैं ।
मैं वर्तमान स्थिति में कोई फ़ाइल नाम (पथ या विस्तार के बिना) (वर्तमान में कोई नई पंक्ति, कोई नई पंक्ति नहीं) सम्मिलित करने का सबसे सरल तरीका था। इसलिए पिछले उत्तरों और इस लिंक को मिलाकर , यही वह है जिसकी मुझे तलाश थी।
में डालने के मोड:
<C-R>=expand("%:t:r")
फिर अगली बार (इतिहास में पहले से ही कमान के साथ):
<C-R>=<UP>
<c-r>फिर से कमांड के रूप में मैप नहीं किया गया है?