Ctrlp'nin daha iyi dosya adı eşleştirmesini nasıl yapmasını sağlayabilirim?


10

Projem şu dosyaları içeriyor:

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

Ben yazmaktan yoruldum olarak :e app/assets/stylesheets/admin/sections/people.css.sass, ben düşündüm ctrlp bazı yazmaktan kurtarır için iyi bir yol olabilir. Ancak, aklı başında olduğunu düşündüğüm dosyalarla eşleşmesini sağlayamıyorum.

İlk olarak, kullanıyorum <C-p>ve yazıyorum peopve bu bana bu sonuçları verir ("ilk" maç en altta):

> 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_

Bu sonuçlar korkunç. İçinde iki dosya peopda yok. Ben bunu genişletmek bile 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_

İkisini de listelemiyor (!)

Ben geçti :help ctrlp-optionsve şeyler biraz artırır tek seçenek bulundu:

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.

Bunu ayarladıktan sonra, aşağıdaki sonuçları elde ederim 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_

Tamam, bu biraz daha iyi, ilk sonuçta beklenen dosyalardan en az birini, diğeri ise 9'unu alıyorum. Hala olsa hulptabellen-object-unit-soort.pdfdaha iyi bir maç olduğu kanaatindedir people.css.sass(!)

peopleSonunda yazmak bana ilk 2 olarak beklenen 2 dosyaları verir:

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

Bu eşleştirmeyi nasıl daha iyi hale getirebilirim? Ben "bulanık eşleşmesini" umursamıyorum, ama buna Bu durumda her şey ve herkes ... maçları çok bulanık olmamalı, ben yazarak beklenebilir <c-P>peopolması app/assets/stylesheets/admin/sections/people.css.sass1. veya 2. eşleşmesinden olarak.


2
Görünüşe göre ctrlp özel bir eşleştirme işlevini kabul edebilir. Kullanımdaki buna 'g:ctrlp_match_func iyi bir örnek bu eklentidir: vim.org/scripts/script.php?script_id=4884
EvergreenTree

Yanıtlar:



4

CtrlP'nin birkaç farklı modu vardır Ctrl-Rve Ctrl-D. Ctrl-Rgirişinizi ham Regex olarak kullanır, yani yalnızca peopleiçerisindeki eşleşmeleri açıkça bulabilirsiniz . Ctrl-Dyolu yok sayarak yalnızca dosya adıyla eşleşir.

Varsayılan CtrlP işlevselliğinin .*her karaktere ham karakter olarak katıldığına inanıyorum , bu nedenle nokta nokta olarak ele alındı. Dosyanın en az 2 dizin derinliğinde olduğunu önceden biliyorsanız, bunu yapabilirsiniz //people.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.