Czy jest sposób, aby otworzyć wszystkie pliki w katalogu z poziomu Vima? Więc to :command
w efekcie powiedziałoby: „Otwórz wszystkie pliki /some/path
do buforów”.
Idealnie byłoby wspaniale otwierać rekursywnie wszystkie pliki w katalogu.
Polecenie, którego szukasz, to args:
Na przykład:
:args /path_to_dir/*
otworzy wszystkie pliki w katalogu
**
do rekurencyjnego dopasowywania plików. Np.:args /path_to_dir/**
:tab all
aby umieścić je w poszczególnych zakładkach."/path_to_dir/subdir/" Illegal file name
). Szybkim rozwiązaniem jestargd */
ponowne uruchomienie drugiego polecenia, aby usunąć te z listy:argdo source my_commands_batch.vim
Dlaczego to nie działa, jeśli chcę otworzyć wszystkie pliki kończące się określonym rozszerzeniem? próbowałem
i otwiera tylko pliki z bieżącego katalogu.
Znalazłem odpowiedź, prawidłowy kod to
:n **/*.cs
Po więcej informacji
:h find
źródło
Próbowałeś
Otworzy wszystkie pliki w / some / path
Nie sądzę jednak, aby otworzył plik rekurencyjnie.
EDYTOWAĆ
Może użycie ** otworzy się rekurencyjnie, jak wspomniano w Daf
źródło
Metodą, która nie wymaga bałaganu,
args
jest umieszczenie listy plików w pliku tekstowym, a następnie użycie:so
polecenia do uruchomienia poleceń w tym pliku.Na przykład, jeśli chcesz otworzyć wszystkie pliki, które kończą się w
.php
danym katalogu, najpierw utwórzfiles.txt
listę plików, poprzedzoną dowolnym poleceniem, którego chcesz użyć do ich otwarcia.Następnie w ramach VIM:
Jeśli lista plików jest duża, stosunkowo proste jest
files.txt
szybkie wygenerowanie pliku przez przekierowanie wyjścia programuls
do pliku, a następnie użycie makra vim do wstawianiasp
przed każdą nazwą pliku.To oczywiście nie jest tak eleganckie, jak używanie poleceń
args
iargdo
, ale te polecenia są również znacznie bardziej skomplikowane.Może istnieć sposób na zrobienie tego za pomocą jednego polecenia w wierszu poleceń, ale nawet po 16 latach nadal uważam programowanie Vima za dziwne i tajemnicze.
źródło
Inny sposób na rekurencyjne otwieranie plików
źródło
kate **/*(^/)
odrzucasz warunki, możesz równie dobrze powiedzieć, że (używając składni zsh globbing) robi to, co jest potrzebne: rekurencyjnie otwiera pliki z podanego katalogu. Nie jest „od wewnątrz” iw ogóle nie używa vima, ale „robi to, co jest potrzebne”. Albo nawetkate ~/.vimrc ~/.bashrc
. Pomijając „od początku”, „z danego katalogu” i „rekurencyjnie” w ogóle, ale „robi to, co trzeba”: otwiera pliki.Jeśli chcesz dodać do listy argumentów;
widzieć
z / w vimie, aby uzyskać więcej informacji.
źródło