Szukam przykładu użycia funkcji findfile w skrypcie vim do wyszukiwania w górę rekursywnie dla pliku, w szczególności przy użyciu symbolu wieloznacznego.Wykorzystanie funkcji findfile Vima?
Ilekroć dołączam znak wieloznaczny jako część pierwszego parametru funkcji, wydaje się, że to nie działa.
Na przykład, o następującej strukturze katalogów:
~/MyProject/
Test.sln
src/
Test.cs
Jeśli uruchomić następującą funkcję, podczas edycji Test.cs plików z pwd zestaw do ~/myproject/src
function! Test()
let a = findfile("*.sln", ".;")
echo a
endfunction
findfile wydaje się niczego nie zwracać. Jeśli jednak zmodyfikuję tę funkcję, aby usunąć widcard w następujący sposób:
function! Test()
let a = findfile("Test.sln", ".;")
echo a
endfunction
Robi to, czego bym się spodziewał.
Testowałem to zarówno na ubuntu, jak i na oknach i widzę to samo zachowanie w obu. Czy robię coś złego tutaj, czy plik findfile nie obsługuje znaków wieloznacznych? Brak wsparcia dla znaku wieloznacznego wydaje się dość dziwnym pominięciem. Wygląda na to, że muszę zrobić coś złego tutaj.
: pomoc w przeszukiwaniu plików pozwala mi sądzić, że stara się wspierać globbing, ale w praktyce wydaje się to błędne. Czy to błąd w vim? –
Z 'vim' [documentation] (http://vimdoc.sourceforge.net/htmldoc/editing.html#file-searching): * Użycie '\ *' jest całkiem proste: ** Dopasowuje 0 lub więcej znaków **. W wyszukiwaniu będzie to ". \ *". Zwróć uwagę, że "." nie jest używany do wyszukiwania plików * –