मैं बेहतर फ़ाइल नाम मिलान के लिए ctrlp कैसे बना सकता हूं?


10

मेरी परियोजना में ये फाइलें हैं:

$ find . -type f -and -name 'peop*'
./app/assets/stylesheets/admin/sections/people.css.sass
./app/controllers/admin/people_controller.rb

जैसे-जैसे मैं टाइपिंग से थक गया :e app/assets/stylesheets/admin/sections/people.css.sass, मैंने सोचा कि कुछ टाइपिंग को बचाने के लिए ctrlp एक अच्छा तरीका हो सकता है। हालाँकि, मैं इसे फ़ाइलों से मेल करने के लिए नहीं मिल सकता है जो मैं एक समझदार तरीका मानता हूं।

सबसे पहले, मैं उपयोग करता हूं <C-p>और टाइप करता हूं peop, और इससे मुझे ये परिणाम मिलते हैं ("पहला" मैच सबसे नीचे है):

> app/models/attribute_group.rb
> app/models/contract_template.rb
> app/policies/contract_policy.rb
> app/uploaders/photo_uploader.rb
> app/policies/invoice_policy.rb
> app/views/layouts/pdf.pdf.haml
> app/uploaders/logo_uploader.rb
> app/models/property_object.rb
> app/policies/person_policy.rb
> app/policies/photo_policy.rb    
>>> peop_

ये परिणाम भयानक हैं। न ही peopउनके पास फाइलें हैं। यहां तक ​​कि जब मैं इसका विस्तार करता हूं people:

> app/policies/contract_template_policy.rb
> app/models/concerns/exportable.rb
> app/models/contract_template.rb
> app/uploaders/photo_uploader.rb
> app/uploaders/logo_uploader.rb
> app/views/admin/people/_show.html.haml
> app/views/admin/people/_form.html.haml
> app/views/admin/people/show.html.haml
> app/views/admin/people/edit.html.haml
> app/views/admin/people/new.html.haml 
>>> people_

यह उनमें से किसी की सूची नहीं है (!)

मैंने गुजरा :help ctrlp-options, और एक ही विकल्प पाया जो कुछ हद तक चीजों को बेहतर बनाता है:

Set this to 1 to set searching by filename (as opposed to full path) as the
default:
  let g:ctrlp_by_filename = 0

Can be toggled on/off by pressing <c-d> inside the prompt.

इसे सेट करने के बाद, मुझे निम्नलिखित परिणाम मिलते हैं peop:

> app/controllers/admin/organisation_people_controller.rb
> app/assets/stylesheets/admin/sections/people.css.sass
> doc/formulieren/opdrachtverlening-woningbeheer.pdf
> doc/formulieren/hulptabellen-object-unit-soort.pdf
> doc/formulieren/brandpreventievoorjongeren.pdf
> app/policies/organisation_person_policy.rb
> doc/prototype-admin/prototype/inspectiemodule_apparaten.html
> app/policies/property_object_policy.rb
> app/policies/person_policy.rb
> app/controllers/admin/people_controller.rb
>d> peop_

ठीक है, इसलिए यह थोड़ा बेहतर है, मुझे पहले परिणाम में कम से कम एक अपेक्षित फ़ाइल मिलती है, और दूसरे को 9 वें के रूप में। यह अभी भी hulptabellen-object-unit-soort.pdfएक बेहतर मैच होने की वजह से people.css.sassकंसीडर है (!)

टाइपिंग peopleअंत में मुझे पहले 2 के रूप में 2 अपेक्षित फाइलें देता है:

> app/controllers/admin/organisation_people_controller.rb
> app/assets/stylesheets/admin/sections/people.css.sass
> app/controllers/admin/people_controller.rb
>>> people_

मैं इस मिलान को बेहतर कैसे बना सकता हूं? मैं "फजी मिलान" कोई आपत्ति नहीं है, लेकिन यह यह सब कुछ है और हर किसी ... इस मामले में मेल खाता है जिससे फजी नहीं होना चाहिए, मैं टाइपिंग उम्मीद होती <c-P>peopहै करने के लिए app/assets/stylesheets/admin/sections/people.css.sassया तो 1 या 2 मैच के रूप में।


2
ऐसा प्रतीत होता है कि ctrlp एक कस्टम मिलान फ़ंक्शन को स्वीकार कर सकता है। यह प्रलेखन 'g:ctrlp_match_func में उपयोग के एक अच्छे उदाहरण के तहत है, यह प्लगइन है: vim.org/scripts/script.php?script_id=4884
सदाबहार

जवाबों:


7

इसी तरह का सवाल यहाँ विम रेडिट पर पूछा गया था । मैंने अपने आप को कुछ समय पहले ctrlp-cmatcher का उपयोग करना शुरू कर दिया था, जो मुझे सही फ़ाइल के मिलान में अधिक बुद्धिमान लगता है। ध्यान दें कि इसके लिए एक संकलित घटक की आवश्यकता है। अन्यथा आपको लेख में कुछ तरीकों की कोशिश करनी होगी ।


4

CtrlP में कुछ अलग मोड हैं, Ctrl-Rऔर Ctrl-DCtrl-Rअपने इनपुट को कच्चे रेगेक्स के रूप में उपयोग करता है, जिसका अर्थ है कि आप केवल peopleइसमें स्पष्ट रूप से मिलान पाएंगे । Ctrl-Dपथ को अनदेखा करते हुए, केवल फ़ाइल नाम से मेल खाता है।

मेरा मानना ​​है कि डिफ़ॉल्ट CtrlP कार्यक्षमता बस .*एक कच्चे चरित्र के रूप में हर चरित्र में शामिल हो रही है, इसलिए एक अवधि को अवधि के रूप में माना जाता है। यदि आपको पहले से पता था कि फ़ाइल कम से कम 2 निर्देशिकाओं में गहरी है, तो आप कर सकते हैं //people

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.