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.sassctrlp 가 타이핑을 저장하는 좋은 방법 이라고 생각했습니다 . 그러나 제정신이라고 생각되는 방식으로 파일을 일치시킬 수는 없습니다.

먼저,를 사용 <C-p>하고 type을 사용 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로 제공됩니다.

> 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.sass1 차 또는 2 차 경기 중 하나로.


2
ctrlp는 사용자 정의 일치 기능을 허용 할 수 있습니다. 그것은 아래의 문서에 'g:ctrlp_match_func 사용이의 좋은 예이 플러그인은 다음과 같습니다 vim.org/scripts/script.php?script_id=4884
EvergreenTree

답변:


7

비슷한 질문은 바로 빔의 레딧에 요청했다 여기 . 나는 꽤 오래 전에 ctrlp-cmatcher를 사용하기 시작 했는데 올바른 파일을 일치시키는 데 훨씬 더 지능적이라는 것을 알았 습니다. 컴파일 된 구성 요소가 필요합니다. 그렇지 않으면 기사 에서 일부 접근 방식을 시도해야합니다 .


4

CtrlP는 몇 가지 다른 모드가 있습니다, Ctrl-R하고 Ctrl-D. Ctrl-R입력을 원시 정규식으로 사용 people하므로 명시 적으로 일치하는 항목 만 찾을 수 있습니다. Ctrl-D경로를 무시하고 파일 이름 만 일치합니다.

기본 CtrlP 기능은 .*모든 문자를 원시 문자로 결합 하는 것이므로 마침표는 마침표로 취급됩니다. 파일이 2 개 이상의 디렉토리에 있다는 것을 미리 알고 있다면 할 수 있습니다 //people.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.