Vim में खुली फ़ाइल की निर्देशिका में एक नई फ़ाइल बनाएं?


93

मैं अपने आप को उस स्थिति में पाता हूँ जहाँ मैं एक ही निर्देशिका में एक नई फ़ाइल बनाना चाहता हूँ, जो कि खुली फ़ाइल में है। मैं फ़ाइल की निर्देशिका में नई फ़ाइल कैसे बनाऊँ? इसके अलावा, क्या कोई ऐसी जगह है जहां मैं इन चीजों को अपने दम पर सीख सकता हूं? Googling ने मदद नहीं की।


क्या आप लिनक्स पर पाठ संपादक के बारे में बात कर रहे हैं?
इयनाज़

जवाबों:


173

विम के भीतर से, नई फ़ाइलों को बनाया जाता है जैसे मौजूदा फ़ाइलों को संपादित किया जाता है, जैसे कमांड :edit filenameया के माध्यम से :split filename। उन्हें डिस्क पर जारी रखने के लिए, आपको (वैकल्पिक रूप से सामग्री में टाइप करना होगा) और उनके माध्यम से जारी रखना होगा :write

कमांड प्रॉम्प्ट की तरह, विम के पास वर्तमान निर्देशिका की एक धारणा है ( :pwdइसे सूचीबद्ध करता है)। सभी फ़ाइल पथ इसके सापेक्ष हैं। आपको अपनी वर्तमान फ़ाइल के लिए पथ को डुप्लिकेट करने की आवश्यकता नहीं है, उनके लिए कुछ अच्छे शॉर्टकट हैं: %वर्तमान फ़ाइल को संदर्भित करता है, :hइसकी निर्देशिका के लिए एक संशोधक है, फ़ाइल नाम को घटाता है (सीपी। :help filename-modifiers)। इसलिए,

:e %:h/filename
:w

filenameवर्तमान में खुली फ़ाइल के रूप में एक ही निर्देशिका में नामित एक नई फ़ाइल बनाएगा , और इसे लिख देगा।

वैकल्पिक रूप से, कुछ लोग विम को हमेशा वर्तमान फ़ाइल की निर्देशिका में बदलना पसंद करते हैं। इसे रखकर कॉन्फ़िगर किया जा सकता है

:set autochdir

आपकी ~/.vimrcफ़ाइल में (जिसे विम स्टार्टअप पर पढ़ा जाता है)। फिर, ऊपर बस बन जाता है

:e filename
:w

अंत में, विम का एक शानदार बिल्ट-इन है :help। नेविगेट करना सीखें और इसे खोजें!


2
autochdirपरतदार है, दुर्भाग्य से, और मैंने पाया कि मैं इस पर निर्भर नहीं हो सकता। इसके बजाय मैं अपने vimrc में एक आटोक्मड डालता हूं:autocmd BufEnter * silent! lcd %:p:h:gs/ /\\ /
डैश-टॉम-बैंग

1
Dawg अपना जवाब भी देना चाहेंगे लेकिन Dawg के पास आवश्यक प्रतिनिधि नहीं है। अच्छी तरह से लिखित स्पष्टीकरण के लिए धन्यवाद!
डग

14

आपको "nddtree" प्लगइन के साथ कोशिश करनी चाहिए। Nddtree विंडो में, आपने कुंजी m टाइप किया, और फ़ाइल ऑपरेशन विकल्प आपको प्रदर्शित करेगा


11

यदि आप एक नई फ़ाइल बनाना चाहते हैं और इसे अपनी वर्तमान फ़ाइल के बगल वाली विंडो में भी दिखा सकते हैं, तो आप यह कोशिश कर सकते हैं:

:vsp newfile

इसके लिए vspखड़ा है vertical split, और यह स्क्रीन को आधे हिस्से में विभाजित करता है, एक आपकी वर्तमान फ़ाइल दिखा रहा है, दूसरा आपकी नई फ़ाइल दिखा रहा है (साथ ही वह काम करता है sp, जो एक क्षैतिज विभाजन है)।

प्रति @ मार्टिनलीन की टिप्पणी के अनुसार, यह फ़ाइल को उस फ़ाइल की निर्देशिका में बनाएगा जिसमें आपने खोला था vim। इसके लिए समायोजित करने के लिए, आप वर्तमान कार्य निर्देशिका को निम्नानुसार बदल सकते हैं:

:cd %:p:h

यह कमांड वर्तमान कार्यशील निर्देशिका को सक्रिय फ़ाइल की निर्देशिका में बदल देता है, जिसका अर्थ है कि vspकमांड (या ऊपर दी गई कोई भी कमांड) उस निर्देशिका में फ़ाइल बनाएगी।


2

जब आपने गैर-मौजूद स्थान पर विम को खोला है $ vim /etc/<some_folder/<next_folder>/file.cfg

फिर vim के अंदर रहते हुए एक नई निर्देशिका बनाने के लिए, बस सामान्य मोड में दौड़ें :! mkdir -p /etc/<some_folder/<next_folder>और अपने डॉक्टर को हमेशा की तरह :w :x ZZ(जो भी आप चाहें) बचाएं

बस


1

यह Gvim के लिए है! वर्तमान निर्देशिका देखने के लिए इसे दर्ज करें।

:cd

फिर इसे बदल दें

:cd desktop/somefolder

फिर वहां नई फ़ाइल सहेजें या बनाएं

:enew asd.cpp

अब फिर से फाइल देखें

:cd

0

मैं पार्टी के लिए काफी देर हो रही है, लेकिन एक और विकल्प के साथ खुला NERDtree है :Eया :Explore(या इसके बंटवारे विकल्प :Vexplore/ :Sexplore== :Vex/ :Sex)।

NerdTree में आप एक नई फ़ाइल बना सकते हैं %और नाम टाइप कर सकते हैं । यह स्वचालित रूप से फ़ाइल को खोलेगा, और इसे आपके द्वारा बनाने :w/ सहेजने के बाद बनाएगा ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.