VIM ctrlp.vim प्लगइन: फ़ाइलों को rescan कैसे करें?


152

मैं भयानक ctrlp.vim प्लगइन भर में आया हूं । यह कमांड-टी प्लगइन का एक अच्छा विकल्प है जो मैंने पहले इस्तेमाल किया है। कमांड-टी के बारे में मुझे जो पसंद नहीं आया वह यह है कि फाइलों को फिर से शुरू करने के लिए 20-30 सेकंड का समय लग सकता है।

CtrlP बहुत तेजी से काम करता है लेकिन यह नई बनाई गई फ़ाइलों के लिए स्वचालित रूप से rescan नहीं लगता है। मुझे मैन्युअल रूप से एक रेसकॉन को कैसे ट्रिगर करना चाहिए?

धन्यवाद!


3
यह प्रलेखन में बहुत स्पष्ट रूप से उत्तर दिया गया है।
मार्क वाइल्डेन

जवाबों:


283

से प्रलेखन :

<F5>
  - Refresh the match window and purge the cache for the current directory.
  - Remove deleted files from MRU list.

यह मानता है कि आप पहले से ही ctrl-p मोड में हैं। ध्यान दें कि आप एक क्वेरी के बीच में F5 को हिट कर सकते हैं, अर्थात, आप कुछ वर्ण टाइप कर सकते हैं, यह पता लगा सकते हैं कि यह हाल ही में अपडेट की गई फ़ाइल से मेल नहीं खा रहा है, और F5 को सही ताज़ा करने के लिए हिट करें। यदि फ़ाइल को सिर्फ ctrl-p कैश में जोड़ा गया था, तो यह स्वचालित रूप से आपको मैच दिखाएगा।


105
ध्यान दें कि यह CTRL-P मोड में रहते हुए किया जाना चाहिए। तो, 1. ctrl-p2.F5
डेविड केए

1
मेरे लिए लगभग काम करता है, मैं इसे अपडेट करता हूं, लेकिन यह
खोजता है

1
@ xer0x सुनिश्चित करें कि आप सही CWD में हैं। NERDTree का उपयोग करते समय एक ही मुद्दा था।
jsbeckr

9
बस जोड़ने के लिए, आप वर्तमान में संपादन करते समय अपनी खुद की फ़ाइल नहीं खोज सकते।
डेरिल सैंटोस

58

जैसा कि जीनत का कहना है कि आप प्रेस कर सकते हैं F5लेकिन अगर वह काम नहीं करता है तो आप हमेशा :CtrlPClearCacheवही चला सकते हैं जो चलाने F5वाला है।

से प्रलेखन

: CtrlPClearCache
वर्तमान कार्यशील निर्देशिका के लिए कैश फ्लश करें। CtrlP के अंदर दबाने जैसा ही।
कैशिंग सक्षम या अक्षम करने के लिए, | g: ctrlp_use_caching का उपयोग करें विकल्प।


मेरे पास GNU स्क्रीन विंडोज है जो मेरे Fn कीज पर मैप की जाती है इसलिए यह एकदम सही है - धन्यवाद!
लियोनार्डकैल्सिस

6

यदि आप चाहते हैं, तो आप सहेजने पर कैश को स्वचालित रूप से बस्ट कर सकते हैं, इसलिए इसे अगले उपयोग पर ताज़ा करने के लिए मजबूर किया जाएगा।

इसे अपने vimrc (क्रेडिट डॉक्वाट ) में रखें:

" CtrlP auto cache clearing.
" ----------------------------------------------------------------------------
function! SetupCtrlP()
  if exists("g:loaded_ctrlp") && g:loaded_ctrlp
    augroup CtrlPExtension
      autocmd!
      autocmd FocusGained  * CtrlPClearCache
      autocmd BufWritePost * CtrlPClearCache
    augroup END
  endif
endfunction
if has("autocmd")
  autocmd VimEnter * :call SetupCtrlP()
endif

दुर्भाग्य से पृष्ठभूमि में कैश को स्वचालित रूप से रखने का कोई तरीका नहीं है।


2
बचत पर महंगा की तरह लगता है। क्या नई फ़ाइल बनाने के लिए एक संभावित ट्रिगर है?
एलेक्स मूर-नीमी

4

मैंने इसे .vimrc में जोड़ा है जो ctrlp कैशिंग को बंद करता है

g:ctrlp_use_caching = 0


यह मूल प्रश्न का सबसे अच्छा और सबसे सटीक उत्तर है। खासकर यदि आप एक कंप्यूटर पर हैं (मैं आपको Apple देख रहा हूं ..) जहां फ़ंक्शन पंक्ति को एक्सेस करने के लिए एक वैकल्पिक संशोधक कुंजी की आवश्यकता होती है।
डेवोन चुंबन

मुझे यह उत्तर पसंद है, कैश के साथ भी, ctrp काफी पहले से ही तेज है, गति बढ़ाने के लिए Ag का उपयोग कर सकता है
Nhan Tran

2

मुझे पता है कि यह एक पुराना प्रश्न है, लेकिन यह इतना सरल है कि मुझे टिप्पणी करनी होगी। इसे अपने .vimrc में डालें

:nnoremap <c-p> :CtrlPClearCache<bar>CtrlP<cr>

यह कैश रीफ़्रेश करेगा और फिर CtrlP को कॉल करेगा। कोई और लापता फाइल नहीं।


2
सिर्फ कैशिंग के साथ अक्षम क्यों नहीं g:ctrlp_use_caching?
मार्टिन टूरनोइज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.