क्या वह फ़ाइल का नाम बदलना संभव है जिसे मैं विम के भीतर से संपादित कर रहा हूं? वर्तमान में मैं क्या कर रहा हूँ Vim से बाहर निकलें, फ़ाइल का नाम बदलें और Vim से फिर से खोलें।
क्या वह फ़ाइल का नाम बदलना संभव है जिसे मैं विम के भीतर से संपादित कर रहा हूं? वर्तमान में मैं क्या कर रहा हूँ Vim से बाहर निकलें, फ़ाइल का नाम बदलें और Vim से फिर से खोलें।
जवाबों:
आप एक अलग नाम का उपयोग करके फ़ाइल को सहेज सकते हैं :w
। लेकिन यह ऑपरेशन पुरानी फ़ाइल को नहीं हटाएगा और 'पुरानी' फ़ाइल आपके बफर में रहती है, इसलिए आपकी 'पुरानी' फ़ाइल में कोई भी परिवर्तन लागू किया जाएगा।
:saveas
आपकी नई फ़ाइल को सहेजता है और इसे एक नए बफर में खोलता है। लेकिन यह पुरानी फाइल को डिलीट नहीं करता है।
मैं फ़ाइलों में tpope / vim-eneuch का उपयोग करता हूं:Move
।
: ले जाएँ: एक बफर और डिस्क पर फ़ाइल एक साथ नाम बदलें।
:w
या :saveas
यह है कि आप एक स्क्रिप्ट संपादित कर रहे थे, तो अमल अनुमति खो देगा। netrw
नाम बदलने की अनुमति रहेगी।
आप Netrw पर जा सकते हैं और फ़ाइल का नाम बदल सकते हैं।
यदि आपके द्वारा संपादित की जा रही फ़ाइल वर्तमान निर्देशिका में है, तो करें:
:edit .
फ़ाइल पर नेविगेट करें R, नाम बदलें , दबाएँ और नाम बदलें। Enterफ़ाइल को संपादित करने के लिए दबाएँ ।
हालांकि एक चेतावनी है: मूल बफर बफ़र्स की सूची में रहता है। यदि आप इसे स्विच करते हैं, तो यह खाली है।
यदि आपके द्वारा संपादित की जा रही फ़ाइल किसी भिन्न निर्देशिका में है, तो आप फ़ाइल की निर्देशिका में बदल सकते हैं:
:cd %:p:h
यदि आप संपूर्ण विम सत्र के लिए निर्देशिका को बदलना नहीं चाहते हैं, लेकिन केवल वर्तमान बफर के लिए, तो आप इसके बजाय कर सकते हैं:
:lcd %:p:h
:edit %:p:h
भी काम लगती है।
:E
netrw भी खोलेंगे
मैं वर्षों से इसके लिए Rename2 प्लगइन का उपयोग कर रहा हूं । यह वर्तमान बफ़र और डिस्क पर फ़ाइल दोनों का नाम बदल देता है:
:Rename {newname}
संपादित करें: मुझे यह github.vimrc
पर एक फ़ाइल मिली :
function! RenameFile()
let old_name = expand('%')
let new_name = input('New file name: ', expand('%'), 'file')
if new_name != '' && new_name != old_name
exec ':saveas ' . new_name
exec ':silent !rm ' . old_name
redraw!
endif
endfunction
map <leader>n :call RenameFile()<cr>