Mein Projekt hat folgende Dateien:
$ find . -type f -and -name 'peop*'
./app/assets/stylesheets/admin/sections/people.css.sass
./app/controllers/admin/people_controller.rb
Als ich es leid :e app/assets/stylesheets/admin/sections/people.css.sass
war zu tippen , dachte ich, dass Strg ein guter Weg sein könnte, um etwas Tippen zu sparen. Ich kann es jedoch nicht dazu bringen, Dateien auf eine meiner Meinung nach vernünftige Weise abzugleichen.
Zuerst benutze <C-p>
und peop
tippe ich und das gibt mir diese Ergebnisse ("erste" Übereinstimmung ist unten):
> 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_
Diese Ergebnisse sind schrecklich. Weder Dateien mit peop
darin sind da. Auch wenn ich es erweitere auf 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_
Keiner von ihnen wird aufgelistet (!)
Ich ging durch :help ctrlp-options
und fand eine einzige Option, die die Dinge etwas verbessert:
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.
Nachdem ich dies eingestellt habe, erhalte ich die folgenden Ergebnisse 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_
Okay, das ist etwas besser, ich bekomme mindestens eine der erwarteten Dateien beim ersten Ergebnis und die andere als 9 .. Es ist immer hulptabellen-object-unit-soort.pdf
noch eine bessere Übereinstimmung als people.css.sass
wenn (!)
Wenn people
ich tippe, bekomme ich endlich die 2 erwarteten Dateien als die ersten 2:
> app/controllers/admin/organisation_people_controller.rb
> app/assets/stylesheets/admin/sections/people.css.sass
> app/controllers/admin/people_controller.rb
>>> people_
Wie kann ich dieses Matching verbessern? Ich weiß nicht „Fuzzy Matching“ nichts, aber es sollte nicht so unscharf, es passt alles und jeden ... In diesem Fall würde ich erwarten , Typisierung <c-P>peop
zu haben app/assets/stylesheets/admin/sections/people.css.sass
als entweder der 1. oder 2. Spiel.
quelle
'g:ctrlp_match_func
Ein gutes Beispiel dafür ist dieses Plugin: vim.org/scripts/script.php?script_id=4884Antworten:
Eine ähnliche Frage wurde gerade auf dem Vim reddit hier gestellt . Ich habe vor einiger Zeit selbst angefangen, ctrlp-cmatcher zu verwenden , was ich als viel intelligenter empfinde , wenn es darum geht, die richtige Datei zu finden. Beachten Sie, dass eine kompilierte Komponente erforderlich ist. Andernfalls müssen Sie einige der im Artikel beschriebenen Ansätze ausprobieren .
quelle
CtrlP hat einige verschiedene Modi
Ctrl-R
undCtrl-D
.Ctrl-R
verwendet Ihre Eingabe als rohen Regex, was bedeutet, dass Sie darin nurpeople
explizit Übereinstimmungen finden .Ctrl-D
stimmt nur mit dem Dateinamen überein und ignoriert den Pfad.Ich glaube, die Standard-CtrlP-Funktionalität verbindet sich nur
.*
mit jedem Zeichen als Rohzeichen , daher wird ein Punkt als Punkt behandelt. Wenn Sie im Voraus wussten, dass die Datei mindestens 2 Verzeichnisse tief ist, können Sie dies tun//people
.quelle