Vim में वर्किंग / करंट डायरेक्टरी कैसे सेट करें?


109

इसलिए जब मैं: e कमांड का उपयोग करके एक नई फ़ाइल बनाना चाहता हूं, तो मैं पूरे रास्ते को निर्दिष्ट नहीं करना चाहता, बस नया फ़ाइल नाम। क्या यह किया जा सकता है?

जवाबों:


144

जैसा कि पहले ही सुझाव दिया गया है, आप ऑटोकैडिर का उपयोग कर सकते हैं, जो आपके द्वारा खोले गए फ़ाइल की निर्देशिका में बदल जाएगा, दूसरा विकल्प है

:cd mydirectory

जो निर्देशिका को बदल देगा। यह एक पूर्ण या सापेक्ष पथ हो सकता है, इसलिए :cd ..एक स्तर ऊपर बढ़ जाएगा। या आप उपयोग कर सकते हैं :cd %:hजो निर्देशिका में बदल जाएगी वर्तमान फ़ाइल अंदर है, लेकिन ऑटोकैडिर को सेट किए बिना।

:cd

निर्देशिका को आपके घर निर्देशिका में बदल देगा (या खिड़कियों पर, वर्तमान निर्देशिका प्रिंट करें)।

:cd -

आपके द्वारा देखी गई पिछली निर्देशिका में निर्देशिका बदल जाएगी।


13
यदि आप कई विंडो का उपयोग कर रहे हैं, तो आप भी उपयोग कर सकते हैं: केवल वर्तमान विंडो के लिए निर्देशिका बदलने के लिए एलसीडी।
बेकार

1
@ पता: दिलचस्प ... मुझे नहीं लगता कि मैं कभी ऐसा चाहता हूं, लेकिन मुझे लगता है कि स्वाद की बात है। जानकारी के लिए धन्यवाद।
फालस्ट्रो

3
मैं यह पता लगाने की कोशिश कर रहा हूं कि%: h का मतलब है, कोई मदद?
माइकल

10
@ मिचेल %पथ सहित वर्तमान फ़ाइल नाम में अनुवाद करता है, :संशोधक जोड़ता है, hसिर है, अर्थात अंतिम पथ विभाजक तक का पथ, जो फ़ाइल नाम को छोड़कर है।
फालस्ट्रो

@falstro, क्या आप जानते हैं कि कैसे: cd कमांड सभी विंडो में एक ही विम रनिंग इंस्टेंस के लिए लागू हो सकता है? Ex: स्प्लिट का उपयोग करते समय: sp
mgouin

15

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


शेल में ले प्रभाव set autochdirको बनाने के लिए भी उपयोग करें 'c' key, ताकि आप !command args परिवर्तित डायर के तहत उपयोग कर सकें ।
pimgeek

9

अपने को जोड़ने set autochdirका प्रयास करें .vimrc। यदि आप इसे केवल एक बार बदलना चाहते हैं, तो उपयोग करें :cd(या :cd!इसे बाध्य करने के लिए)।


1
मदद कहती है कि यह कुछ प्लगइन्स को तोड़ता है (मुझे नहीं पता कि कौन से लोग हैं) इसलिए मैंने अपने .vimrc में मैपिंग को जोड़ने की सावधानी बरती है: cnoremap cd. lcd %:p:hऔर nnoremap ,cd :cd %:p:h<CR>:pwd<CR>इसके बजाय
ErichBSchulz

इसके 'c' keyसाथ netrw फ़ाइल एक्सप्लोरर में भी उपयोग करें।
pimgeek

3

मुझे नहीं पता कि विम के साथ क्या गलत है। मुझे वह निर्देशिका चाहिए जहां मैं वर्तमान के रूप में शुरुआत करता हूं।

मैंने ऊपर दिए गए ऑटोचैड के बारे में टिप का अनुसरण किया है और सेट किया है कि मेरे .vimrc में noautcd।

मैंने अभी तक ऐसा नहीं किया है, लेकिन मैं अभी से इस तरह की शुरुआत करने वाला हूं:

vim —cmd 'cd `pwd`'

यह वर्तमान निर्देशिका के लिए छड़ी कर देगा!


2

साथ netrw:दबाने के अलावा cमौजूदा निर्देशिका स्थापित करने के लिए कुंजी, आप भी डाल सकते हैं:

let g:netrw_keepdir= 0

अपने में .vimrc; इसका मतलब है कि netrwब्राउज़िंग निर्देशिका को वर्तमान निर्देशिका के समान ही रखा जाएगा।


ऐसा लगता है कि एक समान व्यवहार है: प्रत्येक netrw फ़ोल्डर परिवर्तन के लिए एलसीडी। क्या आपके पास एक विचार है कि यह सेटिंग एक के समान कैसे हो सकती है: सीडी के बजाय (सभी खिड़कियों के लिए परिवर्तन)? धन्यवाद!
एमजीनिन

1

इसे मेरे .vimrcस्वचालित रूप से जोड़ने से विम की वर्तमान फ़ाइल में कार्यशील परिवर्तन होता है:

autocmd BufEnter * silent! :lcd%:p:h

3
set autochdirके रूप में अच्छी तरह से करता है :-)
Ciro Santilli 冠状
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.