2013-08-19 3 views
7

में पथ के बिना फ़ाइल नाम सम्मिलित करने के लिए मैं जानता था कि डालने मोड में मैं पथ CTRL-आर उपयोग करने के साथ filiename सम्मिलित कर सकते हैं - %कैसे vim

लेकिन मैं पथ भाग के बिना केवल फ़ाइल नाम डालना चाहता हूं। क्या इसके लिए एक समान आदेश है?

+1

हममम, मुझे 'Ctrl-R% के लिए' पहले से ही basename देता है। शायद यह कुछ विन्यास पैरामीटर पर निर्भर करता है? यूनिक्स एसई पर संभव: http://unix.stackexchange.com/questions/57555/vim-insert-current-filename-into-the-contents –

+0

आप ': r का उपयोग कर सकते हैं! echo% '[इस उत्तर के लिए पूर्ण क्रेडिट] (http://unix.stackexchange.com/a/57557/164925) –

उत्तर

7

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

<C-r>=expand("%:t")<CR> 

देखें :help filename-modifiers

संपादित

<C-r> एक रजिस्टर की सामग्री सम्मिलित कर डालने मोड में प्रयोग किया जाता है। "% वह रजिस्टर है जिसमें वर्तमान फ़ाइल का नाम शामिल है।

"=, अभिव्यक्ति रजिस्टर है यह अभिव्यक्ति है कि = के बाद आता है का परिणाम होते हैं:

<C-r>=2+27+6<CR>  --> 35 
<C-r>=expand("%:t")<CR> --> file.txt 
+0

क्या यह एक मानचित्र कमांड है? क्या यह अन्य सी-आर आदेशों को प्रभावित करता है उदाहरण के लिए। डब्ल्यू – schurik

+0

नहीं, पथ के बिना फ़ाइल नाम डालने के लिए आपको डालने मोड में टाइप करना होगा: 'Ctrl + r', फिर '=', फिर' विस्तृत करें ("%: t") ', फिर' एंटर '। क्षमा करें, इसके लिए कोई शॉर्टकट नहीं है। यदि आप एक कस्टम मैपिंग चाहते हैं, तो 'inoremap अपने '~/.vimrc' में विस्तार करें ("%: t ")' जोड़ें। – romainl

2

डालने मोड में, आप

CTRL-R =expand('%:t') 
+0

क्या यह एक मानचित्र कमांड है? क्या यह अन्य सी-आर आदेशों को प्रभावित करता है उदाहरण के लिए। डब्ल्यू – schurik

+0

@schurik - रोमैनल ने आपकी टिप्पणी का जवाब देने का पूरी तरह से काम किया है। अगर कुछ अभी भी अस्पष्ट है, तो पूछने के लिए स्वतंत्र महसूस करें। –