Meu projeto possui estes arquivos:
$ find . -type f -and -name 'peop*'
./app/assets/stylesheets/admin/sections/people.css.sass
./app/controllers/admin/people_controller.rb
Quando me cansei de digitar :e app/assets/stylesheets/admin/sections/people.css.sass
, pensei que ctrlp poderia ser uma boa maneira de economizar digitação. No entanto, não consigo que ele corresponda aos arquivos do que considero uma maneira sã.
Primeiro, uso <C-p>
e digito peop
, e isso me dá esses resultados (a "primeira" correspondência fica na parte inferior):
> 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_
Esses resultados são horríveis. Nem arquivos com peop
eles estão lá. Mesmo quando eu expandi-lo para 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_
Não lista nenhum deles (!)
Passei :help ctrlp-options
e encontrei uma única opção que melhora as coisas um pouco:
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.
Depois de definir isso, obtenho os seguintes resultados em 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_
Ok, então isso é um pouco melhor, recebo pelo menos um dos arquivos esperados no primeiro resultado e o outro no 9º. Ainda é considerado hulptabellen-object-unit-soort.pdf
um par melhor do que no people.css.sass
entanto (!)
A digitação people
finalmente me fornece os 2 arquivos esperados como os 2 primeiros:
> app/controllers/admin/organisation_people_controller.rb
> app/assets/stylesheets/admin/sections/people.css.sass
> app/controllers/admin/people_controller.rb
>>> people_
Como posso melhorar essa correspondência? Não me importo de "correspondência difusa", mas não deve ser tão difusa que corresponde a tudo e a todos ... Nesse caso, eu esperaria que a digitação <c-P>peop
tivesse app/assets/stylesheets/admin/sections/people.css.sass
como a 1ª ou a 2ª correspondência.
'g:ctrlp_match_func
Um bom exemplo disso em uso é este plugin: vim.org/scripts/script.php?script_id=4884