2010-08-12 9 views
6

"मेरे स्रोत पेड़ में कहीं भी फ़ाइल पर जाकर" नाम का सबसे आसान तरीका क्या है? उदाहरण के लिए, यदि मैं "libfoo" के साथ काम कर रहा हूं जिसमें libfoo/foo/foo.py है, तो मैं libfoo/** [0] के भीतर कहीं से भी foo.py पर कूदने में सक्षम होना चाहता हूं।विम: सरल "फ़ाइल पर कूदें" कमांड?

शायद टैग फ़ाइल के साथ ऐसा करने का कोई तरीका है?

[0]: libfoo/ और इसकी उपनिर्देशिकाएं हैं।

उत्तर

6

बाहर की जांच command-t, FuzzyFinder, या FuzzyFinder_Textmate

निजी तौर पर

, मुझे लगता है आदेश-टी सबसे अच्छा यूआई है, लेकिन FuF_Textmate जल्दी से बहुत बड़ी परियोजनाओं में सही जगह पर प्राप्त करने के लिए सबसे अच्छा है (जो मुझे इसका उपयोग क्यों सभी कोशिश करने के बाद 3)

ध्यान दें कि fuzzyfinder_textmate अपने मूल लेखक द्वारा अनियंत्रित है, इसलिए आपको सबसे अधिक अद्यतित शाखा ढूंढने के लिए gh नेटवर्क टैब के आसपास पोक करना पड़ सकता है। यह भी ध्यान रखें कि इसे स्थापित करने के लिए दर्द का थोड़ा सा हिस्सा है।

+0

मैं FuzzyFinder_Textmate का उपयोग पहले से ही अपने टैग कूद के लिए ... लेकिन यह 'file' उपयोग करने के लिए है, क्योंकि अगर मैं' libfoo/बार/baz में हूँ/', तो मैंने थोड़ा कष्टप्रद है '\ f ../../../**/ foo.py' टाइप करना होगा। –

+0

संभवतः इसे सेट अप करने का कोई तरीका है ताकि यह रूट के रूप में कुछ निर्देशिका का उपयोग करने के लिए डिफ़ॉल्ट हो जाए? जहां तक ​​मुझे पता है, –

+0

, fuzzyfinder_textmate केवल फ़ाइल नाम करता है, और हमेशा उस स्थान पर शुरू होगा जहां आपने vim खोला था (जो वास्तव में कभी-कभी दर्द हो सकता है)। शायद आप फजीफिंडर का उपयोग कर रहे हैं? –

14

जोड़े ** आप अल्पविराम से अलग vim path चर (नहीं सिस्टम पथ) करने के लिए है और आप परियोजना उपयोग की कुछ माता पिता निर्देशिका में हैं:

:find foo.py 
+1

ने आपको वोट दिया क्योंकि प्लगइन स्थापित करना और कॉन्फ़िगर करना निश्चित रूप से सरल है। –

+0

एचआरएम, ऐसा लगता है कि मैं क्या चाहता हूं ... यदि मेरा सीडब्ल्यूडी 'libfoo /' है, तो 'foo.py' काम नहीं करता है। संभवतः 'ढूंढें' रिकर्सिव नहीं है? –

+0

क्या करता है: सेट पथ आपको बताता है? मेरा 'पथ =।, **,' है, जो मुझे लगता है कि डिफ़ॉल्ट है। यह निश्चित रूप से मेरे लिए recurses। : पासवर्ड/ढूंढें/etc/passwd में पासवर्ड खोजें। –

2

आप में फ़ाइल नाम के विम का टैब पूरा होने का उपयोग कर सकते ** रिकर्सिव निर्देशिका विस्तार के साथ conjuction।

उदा। टाइप करें: :e libfoo/**/foo.py और टैब दबाएं। यह मेल खाने वाली फ़ाइल ढूंढने के लिए libfoo निर्देशिका से नीचे खोज करेगा। यदि एक से अधिक मैच हैं तो आप टैब कुंजी के साथ उनके माध्यम से चक्र चला सकते हैं। जब आप उसे ढूंढते हैं तो उसे पूरा करने के लिए एंटर दबाएं और फ़ाइल को संपादित करें।

** मिलान करने के बारे में अधिक जानकारी के लिए :h starstar। इसे + path_extra विकल्प के साथ संकलित विम के एक संस्करण की आवश्यकता है।

यदि आप पहले ही फ़ाइल संपादित कर चुके हैं तो आप :b name कमांड के साथ आंशिक नाम मिलान के लिए बफर भी खोज सकते हैं। जैसे :b foo.py<TAB> एक बफर नाम में विस्तारित होगा जिसमें 'foo.py' कहीं भी है। N.B. यह पूरे पथ से मेल खाता है, इसलिए :b foo<TAB> libfoo निर्देशिका से फ़ाइलों के साथ सभी बफर से मेल खाता है।

https://github.com/zhchang/quick_file

अद्वितीय विशेषताएं: 1. आप की जरूरत नहीं है

-1
map <S-F12> :execute "!start explorer \"" . expand("%:p:h") . "\""<CR> 

फ़ाइल निर्देशिका में एक्सप्लोरर विंडो आप

+0

क्षमा करें, मुझे यकीन नहीं है कि मैं देखता हूं कि यह प्रश्न के लिए प्रासंगिक कैसे है ... –

0

जांच इस प्रयोग कर रहे हैं शुरू होता है पता है कि यह वास्तव में कहां है, जब तक यह उप डीआईआर 2 में से एक में है 2. आपको पूरा नाम याद नहीं रखना है, टुकड़े करेंगे 3. यह सबसे उथले मैच में जाएगा, लेकिन आपूर्ति किए गए पथ के अधिक टुकड़ों के साथ, यह गहराई से मेल खाएगा।

1

ctrlp।vim

पूर्ण पथ फजी फ़ाइल, बफर, MRU, टैग, ... विम के लिए खोजक।

  • मैकवीम, जीवीआईएम और वीम 7.0+ के लिए शुद्ध विस्क्रिप्ट में लिखा गया।
  • खोज पैटर्न के रूप में विम के regexp के लिए पूर्ण समर्थन।
  • अंतर्निहित सबसे हाल ही में प्रयुक्त (एमआरयू) फाइलों की निगरानी।
  • अंतर्निहित परियोजना के रूट खोजक।
  • एक साथ कई फाइलें खोलें।
  • नई फ़ाइलें और निर्देशिका बनाएं।
  • एक्स्टेंसिबल।

आप इसे https://github.com/ctrlpvim/ctrlp.vim पर पा सकते हैं।

0

ctags --extra=f . पहली पंक्ति की ओर इशारा करते फ़ाइलों के रूप में एक ही नाम के साथ टैग बनाता है:

ctags -R --extra=f . 

तो फिर तुम सिर्फ कर सकते हैं:

:tag file_na 

और टैब दूर पूरा करें।

में उल्लेख किया: Vim and ctags: tag filenames

संबंधित मुद्दे