Chcę edytować kilka plików pasujących do wyrażenia glob. Na przykład, aby edytować wszystkie pliki konfiguracyjne git w katalogach potomnych, mogę to zrobić w powłoce:
vim */.git/config
W :
wierszu poleceń Vima spodziewałem :find */.git/config
się zrobić coś podobnego (tj. Otworzyć wszystkie pliki pasujące do wyrażenia glob), ale zamiast tego narzeka E77: Too many file names
.
Czy istnieje polecenie Vima lub jeden wiersz do otwierania wielu plików pasujących do wyrażenia wieloznacznego / globalnego (które nie wymagają pisania funkcji)?
źródło
:args */.git/config
faktycznie zapełnia również listę buforów, więc:bnext
też działa. Czy to wydaje się dziwne? (Vim 7.4.52 i Neovim)]a
cyklicznie wyświetla:args
listę, jeśli github.com/tpope/vim-unimpaired jest zainstalowany.:argadd file*
Mogę też zrobić.**
), musisz miećglobstar
ustawiony, zobacz: Dopasuj wszystkie pliki we wszystkich zagnieżdżonych katalogach z globowaniem powłoki .Aby otworzyć pasujące pliki na osobnych kartach…
Objaśnienie:
:n
(:next
) ustawia listę następnego pliku na wszystkie dopasowania.tab all
otwiera wszystkie pliki na liście następnych plików w nowych kartach.… Lub…
Objaśnienie: W
glob(…)
polu 0 oznacza uwzględnienie wszystkich pasujących plików, nawet jeśli w przeciwnym razie zostałyby zignorowane ze względu na ustawieniasuffixes
lubwildignorecase
. 1 oznacza zwrócenie listy zamiast ciągu.exe "tabe" f
jest krótką formąexecute "tabedit" f
i środkiem do otwarcia pliku określonego przez zmiennąf
w nowej karcie.źródło
:n */.git/config | buffer
prace.Nie oczekuj niczego przed przeczytaniem dokumentacji.
Oprócz odpowiedzi Toma możesz bezpośrednio użyć
:next
jako alternatywy dla:args
.źródło
Otwieranie plików
vim */.git/config
zdecydowanie powinno działać. Jeśli tak się nie stanie, powinieneś zaktualizować Vima do wersji 7.4 (poprzednia wersja była bardziej wadliwa).Możesz też wypróbować jedną z następujących opcji (w edytorze):
źródło
:args
.args
jest tylko obejściem, ale ponadto pokazuje, jak używać rozszerzenia powłoki w vimie, na wypadek, gdyby inni użytkownicy chcieli go użyć do bardziej złożonych rozwiązańfind
, takich jak to . Myślę więc, że daje to dodatkową wartość twojemu pytaniu. Mam nadzieję, że u ciebie wszystko w porządku.vim */foo
i nie ma sposobu, aby można go było powiązać z wersją Vima, ponieważ jest to funkcja powłoki .Oczywiste, ale niewymienione powyżej - na przykład znajdź wszystkie pliki SQL mające w swoim łańcuchu ciąg create_table
i sprawdź je
i otwórz pierwszy
źródło