2013-08-17 4 views
19

में एजी का उपयोग करें मैं ctrlp और vim के साथ एजी (चांदी खोजकर्ता) का उपयोग करना चाहता हूं। मैं अपने .vimrc में यह है:ctrlp + vim

if executable("ag") 
    set grepprg=ag\ --nogroup\ --nocolor 
    let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""' 
endif 

let g:ctrlp_show_hidden = 1 

set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*/.tmp/*,*/.sass-cache/*,*/node_modules/*,*.keep,*.DS_Store,*/.git/* 

मैं ctrlp छिपी हुई फ़ाइलें शामिल करना चाहते हैं, लेकिन उन छिपे हुए हैं। अगर मैं एजी कमांड में -u जोड़ता हूं तो यह सभी छिपी हुई फाइलें दिखाता है लेकिन वाइल्डिनोर या .gitignore का सम्मान नहीं करता है। क्या इसका सम्मान करना संभव है?

+0

क्या मेरा उत्तर आपकी समस्या का समाधान करता है? या आपको अतिरिक्त जानकारी चाहिए? – mcanfield

+0

यह निश्चित रूप से करता है! अपने उत्तर को स्वीकार्य के रूप में चिह्नित करने के लिए भूल गए, इसके बारे में खेद है। आपका बहुत बहुत धन्यवाद! – Richard

उत्तर

34

आप ctrlp_show_hiddenctrlp_custom_ignore और vim के wildignore पैटर्न सहित ctrlp_user_command कई विकल्प, के माध्यम से एक कस्टम खोजक उपयोग कर रहे हैं, CtrlP (see documentation) का उपयोग नहीं करतीं।

छ:

ctrlp_show_hidden ...

नोट: जब एक आदेश के साथ परिभाषित लागू नहीं होता है | छ: ctrlp_user_command | उपयोग किया जा रहा है।

छ: ctrlp_custom_ignore

...

नोट # 1: डिफ़ॉल्ट रूप से, | wildignore | और | जी: ctrlp_custom_ignore | केवल लागू होते हैं जब globpath() | फ़ाइलों के लिए स्कैन करने के लिए प्रयोग किया जाता है, इस प्रकार लागू नहीं होते हैं जब g = ctrlp_user_command | उपयोग किया जा रहा है।

तो इस मामले में, आप अपने खोज उपकरण की दया पर छोड़ दिए गए हैं, एजी। सौभाग्य से आप कुछ चीजें कर सकते हैं जो आपको इच्छित व्यवहार देनी चाहिए।

अपने छिपे dotfiles प्रकट करने के लिए प्राप्त करने के लिए, लेकिन अभी भी ignore फ़ाइलों का सम्मान करते हैं, --hidden विकल्प एजी के लिए उपयोग: अब पैटर्न को परिभाषित करने के लिए की अनदेखी करने के

let g:ctrlp_user_command = 'ag %s -l --nocolor --hidden -g ""'

, आप एजी की अपनी उपयोग कर सकते हैं फ़ाइल .agignore ध्यान न दें। यह एक प्रति निर्देशिका या वैश्विक हो सकता है कि एजी प्रत्येक रन पर जांच करेगा। आप इसे अपने घर डीआईआर ~/.agignore में रखें।

मुझे समझ में आता है कि vims wildignore पैटर्न का ख्याल रखना अच्छा हो सकता है, लेकिन .agignore के साथ आपको क्ली से एजी का उपयोग करते समय उन प्रतिबंधों का बोनस मिलता है। यदि आप सभी फाइलों को खोजना चाहते हैं तो बस ag -u कमांड का उपयोग करें जिसका उल्लेख आपने किसी भी ignore फ़ाइलों को बाईपास करने के लिए किया है।

एक अंतिम tidbit के रूप में, वहाँ एक शब्दकोश प्रारूप आप g:ctrlp_user_command जो एक ignore महत्वपूर्ण यह है कि CtrlP wildignore पैटर्न का उपयोग कर देगा शामिल परिभाषित करने के लिए उपयोग कर सकते हैं। हालांकि, मैंने कभी कोशिश नहीं की है और दस्तावेज़ीकरण एक संभावित प्रदर्शन हिट बताता है। यदि आप मेरे अन्य प्रस्तावित समाधान (see documentation) पसंद नहीं करते हैं तो आप इस विधि को आजमा सकते हैं।

नोट # 3: जब तक | शब्दकोश | प्रारूप का उपयोग किया जाता है और 'अनदेखा' परिभाषित किया गया है और 1, the | wildignore पर सेट है। और | जी: ctrlp_custom_ignore | विकल्प लागू नहीं होते हैं जब इन कस्टम आदेशों का उपयोग किया जा रहा है।जब मौजूद नहीं है, बाहरी आदेशों का उपयोग करने के प्रदर्शन लाभ को बनाए रखने के लिए डिफ़ॉल्ट रूप से 'अनदेखा' 0 पर सेट किया गया है।