जवाबों:
पहली बात जो मेरे दिमाग में आती touch
है, वह यह है कि इसे पास करने वाले कमांड का उपयोग कर्सर के नीचे फाइलनेम के लिए किया जाए।
:map <silent> <leader>cf :!touch <c-r><c-p><cr><cr>
लेकिन प्लेटफार्मों में एक शुद्ध विम समाधान पोर्टेबल है। अंतर्निहित फ़ंक्शन writefile
फ़ाइल की सूची, लाइन द्वारा लाइन में लिखता है। स्वाभाविक रूप से, जब इनपुट सूची खाली होती है, तो यह एक खाली फ़ाइल बनाता है। ( :help writefile
विवरण देखें।) हम इस दुष्प्रभाव का लाभ उठा सकते हैं:
:map <silent> <leader>cf :call writefile([], expand("<cfile>"), "t")<cr>
ध्यान दें कि फ़ाइल नाम निष्कर्षण को एक अलग expand
पैटर्न (देखें :help expand()
) का उपयोग करके समायोजित किया जा सकता है ।
वैसे, अगर कोई फ़ाइल बनाना नहीं चाहता है, लेकिन संपादन के लिए इसे खोलना है, तो कोई एक समान gf
मैपिंग को परिभाषित कर सकता है :
:map <leader>gf :e <cfile><cr>
जहां :e
कमांड को :tabe
एक समान कमांड के साथ बदला जा सकता है ।
मैंने ऊपर ib द्वारा उत्कृष्ट उत्तर लिया और इसे निम्नानुसार विस्तारित किया। मेरा लक्ष्य विकी के लिए आवश्यकतानुसार नई मार्कडाउन फाइलें बनाने के लिए विम का उपयोग करना था (इस मामले में एक गोलम विकि)
मैंने पहली बार कोशिश की:
map <silent> <leader>cf :call writefile([], expand("<cfile>"), "t")<cr>`
जैसा कि उत्तर में कहा गया है ऊपर काम करता है। हालाँकि, पहले मुझे लगा कि यह काम नहीं कर रहा है क्योंकि मैंने वास्तव में फ़ाइल को खोलना नहीं देखा था। नीचे दिए गए दूसरे बिट कोड का उपयोग करने से एक नई फ़ाइल खुल जाएगी - यह वही है जो मैं देख रहा था। इसलिए मैंने उन्हें संयुक्त किया और कोशिश की:
map <leader>cf :e <cfile><cr>
लेकिन यह विकी के लिए काम नहीं करता है क्योंकि जब आप विकी में सिंटैक्स का उपयोग करके विकी में एक नई फ़ाइल बनाने का प्रयास करते हैं जैसे [[the-new-file]]
कि कोष्ठक में फ़ाइल के विस्तार की अनुमति नहीं देता है। हालांकि, विम को इस काम के लिए एक नई फ़ाइल बनाते समय विस्तार को जानना होगा। इस मामले में मैंने इस्तेमाल किया:
map <leader>cf :e <cfile>.md<cr>
इसलिए मैं नई मार्कडाउन फाइलें बना सकता हूं। इसे और अधिक अनुकूलित करने के तरीके हैं (उदाहरण के लिए विस्तार को हार्डकोड करके नहीं) लेकिन उपरोक्त मेरी आवश्यकताओं के लिए ठीक काम करता है। अगर मुझे कभी भी एक और एक्सटेंशन की आवश्यकता होती है (उदाहरण के लिए .wiki फ़ाइल को बचाने के लिए) तो मैं शायद केवल सरल मार्ग ले लूंगा और एक और नक्शा बनाऊंगा जैसे:
map <leader>cwf :e <cfile>.wiki<cr>
साइड बेनिफिट के रूप में आप पहले से मौजूद मार्कडाउन फाइल को खोलने के लिए उसी कमांड का उपयोग कर सकते हैं (मानक gf
कमांड यहां काम नहीं करेगा क्योंकि फाइल एक्सटेंशन गायब है)।
gf
अगर काम करता है set suffixesadd=.wiki
। आपका एक बेहतर संस्करण cf
एक ऐसा होगा जो suffixesadd
कम से कम उस मामले में सम्मान करता है , जिसमें केवल एक आइटम होता है।
<cfile>
के बजाय<C-r><C-f>