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.
Odpowiedzi:
Polecenie, którego szukasz, to args:
Na przykład:
:args /path_to_dir/*
otworzy wszystkie pliki w katalogu
:tab all
aby umieścić je w poszczególnych zakładkach.
"/path_to_dir/subdir/" Illegal file name
). Szybkim rozwiązaniem jest argd */
ponowne uruchomienie drugiego polecenia, aby usunąć te z listy
:argdo source my_commands_batch.vim
Próbowałeś
:n /some/path/*
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
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órz files.txt
listę plików, poprzedzoną dowolnym poleceniem, którego chcesz użyć do ich otwarcia.
sp alpha.php
sp bravo.php
sp charlie.php
Następnie w ramach VIM:
:so files.txt
Jeśli lista plików jest duża, stosunkowo proste jest files.txt
szybkie wygenerowanie pliku przez przekierowanie wyjścia programu ls
do pliku, a następnie użycie makra vim do wstawiania sp
przed każdą nazwą pliku.
To oczywiście nie jest tak eleganckie, jak używanie poleceń args
i argdo
, 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.
Inny sposób na rekurencyjne otwieranie plików
find . -type f -exec vi {} \;
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 nawet kate ~/.vimrc ~/.bashrc
. Pomijając „od początku”, „z danego katalogu” i „rekurencyjnie” w ogóle, ale „robi to, co trzeba”: otwiera pliki.
**
do rekurencyjnego dopasowywania plików. Np.:args /path_to_dir/**