2010-03-13 11 views
11

Próbuję dowiedzieć się, jak mogę zdefiniować autocmd, który wpływa na wszystkie pliki pod określoną ścieżką.W vimie, w jaki sposób mogę użyć autocmdów do plików w podkatalogach określonej ścieżki?

autocmd Próbowałem coś jak

autocmd BufNewFile,BufRead /specificPath/** imap <buffer> .... 

Teraz będę oczekiwać tego autocmd być stosowane, jeśli edytowany, powiedzmy, /foo/bar/specificPath/baz/something/bla.txt , ale nie, jeśli edytowałem /foo/bar/here/and/there/moreBla.txt

Jeśli zacznę vim będąc w katalogu "powyżej" określonej ścieżki, to działa tak, jak chcę. Ale nie, jeśli jestem poniżej tego katalogu. Oczywiście wzorzec autocmd jest dopasowywany względem względnej nazwy pliku, a nie bezwzględnej.

Odpowiedz

11

Tak, zrobiłem to w moim kodzie ze ścieżkami pod określoną ścieżką. Musisz zrobić:

autocmd BufRead,BufNewFile */somepath/* set filetype=sometype 

Przynajmniej to właśnie użyłem do ustawienia danego typu pliku dla rzeczy pod konkretną ścieżką biblioteki. Mam nadzieję, że pomoże to w twoim przykładzie.

+0

To było głupie, powinienem pomyśleć o asterik przed wzór ... –

+0

co jeśli chcę dać ścieżki bezwzględne i nie jest częścią ścieżki? jak '/ home/user/work /' czy będzie poprzednia gwiazdka? –

+0

Myślę, że jest sposób na zrobienie tego również - po prostu tęsknię za wiodącym * na liście. Prawdopodobnie potrzebujesz lidera/jeśli chcesz dopasować coś jak/home. – AlBlue

12

To odpowie na wszystkie twoje pytania. :)

:h autocmd-patterns 
+3

Szczerze mówiąc, uznałem, że jest to bardziej użyteczne niż przyjęta odpowiedź, więc rzuciłem przegrywam po swojemu. następnym razem spróbuj podać przykład lub cytowany tekst z dokumentacji! –

Powiązane problemy