2010-01-31 15 views
15

मैं वीम में कोड, आईडीई नहीं। मेरा स्रोत कोड अक्सर 2-3 निर्देशिकाओं को घोंसला जाता है।विम: ई शुरू निर्देशिका?

~/foo$ find 
xyz 
bar/abc 
bar/def 

~/foo$ vim 
// inside of vim 
:e bar/abc 
... some work ... 
:e <-- is there a way I can have this :e start in ~/foo/bar instead of ~/foo ? 

मूल रूप से, मैं चाहता हूँ: ई

धन्यवाद "पिछले संपादित फ़ाइल का पथ" में निर्देशिका शुरू करने के लिए!

उत्तर

12

वहाँ कारणों की एक बहुत कुछ autochdir पसंद करने के लिए नहीं के रूप में यह कुछ प्लग को खराब करता है और यदि आप कर अंत है: ई ../../../foo.txt आप कुछ भी प्राप्त कर रहा नहीं कर रहे हैं। बस एक विचार के रूप में इस CMAP मैं

:cnoremap red edit <c-r>=expand("%:h")<cr>/ 

खटखटाया कोशिश तो आप लिख सकते हैं: लाल और मिल

:e /the/path/to/your/current/files/dir/ 

(संपादित करें: शायद लाल के बजाय जेड का उपयोग के रूप में वहाँ आदेशों लाल के साथ शुरू कर रहे हैं)

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

आपकी नियमित फ़ाइलों में से 10 या तो 2 कीस्ट्रोक से अधिक नहीं होना चाहिए। यह मदद करता है अगर उन्हें व्यवस्थित रूप से

यहां एक विचार है जो मैं django के लिए उपयोग करता हूं।

http://code.djangoproject.com/wiki/UsingVimWithDjango#Mappings

+0

यह वही जवाब है जिसे मैं ढूंढ रहा था। – anon

2

क्षमा करें, लेकिन vim's: संपादित करें आदेश एक पथ लेता है जिसका अर्थ vim उदाहरण की वर्तमान कार्य निर्देशिका के सापेक्ष है।

आपके पास एक है: सीडी कमांड जिसे आप :cd bar पर उपयोग कर सकते हैं, फिर थोड़ी देर के लिए काम करें, फिर :cd ..

आशा है कि कुछ की मदद करें।

3

हमेशा मेरे .vimrc में मैं इस राशि वर्तमान फ़ाइल की निर्देशिका के लिए काम कर निर्देशिका बदलने के लिए:

if has("autocmd") 
    autocmd BufEnter * :lcd %:p:h 
endif " has("autocmd") 
+0

ग्रेट! लेकिन जब आप सभी फ़ाइलों को ': bd'' के साथ बंद करते हैं तो उस तरह के ऑटोकॉन्मेंड्स हमेशा एक त्रुटि 'E32' प्रदर्शित करते हैं। – Niloct

11

autochdir विकल्प की कोशिश करो। यह स्वचालित रूप से वर्तमान कार्यशील निर्देशिका को जो भी फ़ाइल हाल ही में खोला या चुना गया था, में बदल देगा। .vimrc में:

set autochdir 

अधिक जानकारी के लिए, :help autochdir

0
  • :cd निर्देशिका
  • :pwd प्रिंट मौजूदा बदल जाता है।
1

कुछ समय पहले मैं vim मेलिंग सूची पर इस से संबंधित प्रश्न पूछे: http://www.mail-archive.com/[email protected]/msg03266.html हो सकता है कि आपको लगता है कि सूत्र में उपयोगी टिप्स मिल जाएगा।

मैंने कई प्लगइन का परीक्षण किया, लेकिन चूंकि सीएलआई आधारित जीयूआई मेरा स्वाद नहीं है, इसलिए मैं कुछ विन्यास सेटिंग्स के साथ मानक विम का उपयोग कर समाप्त हुआ।

autocmd BufEnter * lcd %:p:h 

मेरे अन्य टिप wildmenu उपयोग करने के लिए है:

के रूप में हार्न ने कहा, इस लाइन फ़ाइल अपने पर काम कर के रूप में ही करने के लिए काम निर्देशिका सेट। जब आप जाते हैं तो यह आपकी वर्तमान निर्देशिका में फ़ाइलों का अवलोकन प्राप्त करना आसान बनाता है: ई और फिर टैब। मैं एक अजगर प्रोग्रामर हूं इसलिए आखिरी पंक्ति से पता चलता है कि पाइथन दुभाषिया कैसे निकलता है, लेकिन आप इसका उपयोग जावा। क्लास फाइलों या सी .obj फ़ाइलों या जो कुछ भी छिपाने के लिए कर सकते हैं।

set wildmode=list:longest 
set wildignore=*.pyc,*pyo 
+0

मैं कुछ ऐसा करता हूं, लेकिन सहायता फ़ाइलों को बाहर करता हूं: 'au BufReadPost * if & ft! =' Help '| चुप! सीडी%: पी: एच | endif' – idbrii

0

क्यों नहीं :E? वर्तमान फ़ाइल की निर्देशिका का अन्वेषण करें।

:help :E

0

यह ठीक है कि तुम क्या चाहते थे, लेकिन NERDTree की जाँच नहीं है।

+0

यह वास्तव में एक टिप्पणी है, जवाब नहीं। थोड़ा और प्रतिनिधि के साथ, [आप टिप्पणियां पोस्ट करने में सक्षम होंगे] (http://stackoverflow.com/privileges/comment) .. – Jack

+0

@ जैक मुझे पता है ... – Gaelan

0

विम/जीवीआईएम पर मेरे पास मेरे vimrc के शीर्ष पर cd C:/blah/blah है। मुझे कल्पना है कि यह सभी प्लेटफार्मों पर काम करता है।

मैं व्यक्तिगत रूप से प्रत्येक प्रोजेक्ट के लिए वारंटी का उपयोग करता हूं, इसलिए एक सीडी पर्याप्त है, लेकिन मुझे लगता है कि आप अलग-अलग कॉन्फ़िगरेशन फ़ाइलों का उपयोग करने के लिए भी विम प्राप्त कर सकते हैं, -u ध्वज मुझे लगता है।

या आपके द्वारा प्रोजेक्ट की प्रत्येक कुंजी को Ctrl + F1 दबाकर cd path/to/project/1 और Ctrl + F2 cd path/to/project/2 करता है?

नोट: मैं किसी भी प्लगइन का उपयोग नहीं करता