Jak uzyskać vima, aby otworzyć wiele plików na kartach jednocześnie


85

Czy jest możliwe, aby vim otworzył wiele plików w kartach, podobnie jak args <path>polecenie otworzy wiele plików w buforach?

Wykonanie czegoś podobnego :tabe ./*powoduje błąd „E77: Zbyt wiele nazw plików”, mimo że liczba plików jest mniejsza niż wartość ustawiona we tabpagemaxwłaściwości.

(Wierzę, że vim -p <files>opcja otworzy się w kartach, ale mam nadzieję znaleźć sposób, aby to zrobić, gdy vim jest już otwarty.)


12
Dziękujemy za wzmiankę o opcji -p; właśnie tego szukałem
user72923,

4
Znalazłem to pytanie za pośrednictwem Google. Szukałem, jak otworzyć vim z kartami z wiersza poleceń, vim -ptego szukałem :-)
Rocket Hazmat



Odpowiedzi:


82
:tab all

otworzy wszystkie pliki z listy argumentów Vima w poszczególnych zakładkach. Lista argumentów jest początkowo ustawiona na listę nazw plików podaną w wierszu poleceń podczas uruchamiania Vima. Lista może zostać zmieniona za pomocą :argsi powiązanych poleceń. Widzieć

:help :all
:help argument-list

Przykład:

:args *.c
:tab all

otworzy wszystkie pliki .c w bieżącym katalogu na poszczególnych kartach.


Nie jestem pewien, jak to ma działać. Powiedz, jeśli chcę otworzyć wszystkie pliki .txt w bieżącym katalogu, co powinienem wprowadzić? Jeśli :tab all *.txtwejdę, vim odpowiada licznikiem „E488: Znaki końcowe”
Ash

Zredagowałem odpowiedź, aby wyjaśnić, co rozumiem przez „argumenty”. Miałem na myśli listę argumentów Vima, a nie argumenty :tab all.
garyjohn

1
Nie wiem od jednego polecenia, które można zrobić, ale można umieścić dwie komendy w jednym wierszu, rozdzielając je z pionowym pasku, na przykład: :args *.c | tab all.
garyjohn,

9
Minusem jest to, że używanie :tab allzastępuje istniejące karty. Z tego powodu, w moim przypadku użycia, nie zapewnia to większych korzyści w stosunku do ponownego otwierania plików vim -p. Jeśli jednak istnieje jakiś sposób na umieszczenie istniejących kart :args, może być możliwe otwarcie nowych kart i zachowanie istniejących.
Kevin Qi,

3
Jeśli karta jest już otwarty, zastąpił argaddna args.
cdosborn

4

W rzeczywistości możesz otwierać nowe karty i przechowywać bieżące karty bez pisania nowych funkcji. Zobacz tę odpowiedź na temat Przepełnienia stosu: https://stackoverflow.com/a/11430615/200234

:args file1 file2 | argdo tabe

:tabePrzed otwarciem możesz chcieć otworzyć nową pustą kartę ( ), ponieważ pierwszy plik otworzy się na bieżącej karcie. Dodatkowa pusta karta pozostanie otwarta (zobacz, :help argdoaby zrozumieć, dlaczego).


Jeśli dodajesz nowe karty do istniejącego zestawu, czy nie byłoby łatwiej po prostu :tabe file1?
jpaugh

@jpaugh, pytanie dotyczy wielu plików.
Mihai Capotă

Czy nie :args | argdo tabeodpowiedziałby na pytanie? Jaki jest powód dodawania nowych plików w ten sposób?
jpaugh

@jpaugh, właśnie o to pyta pytanie: „Wierzę, że opcja vim -p <files> otworzy się w kartach, ale mam nadzieję, że znajdę sposób, aby to zrobić, gdy vim jest już otwarty.”
Mihai Capotă
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.