Come ottenere vim per aprire più file in schede contemporaneamente


85

È possibile ottenere VIM per aprire più file in schede, in modo simile al modo in cui il args <path>comando aprirà più file nei buffer?

Fare qualcosa del genere :tabe ./*provoca l'errore "E77: Troppi nomi di file", anche se il numero di file è inferiore al valore impostato nella tabpagemaxproprietà.

(Credo che l' vim -p <files>opzione si aprirà nelle schede, ma spero di trovare un modo per farlo quando vim è già aperto.)


12
Grazie per aver menzionato l'opzione -p; questo è quello che stavo cercando
user72923

4
Ho trovato questa domanda tramite Google. Stavo cercando come aprire vim con le schede dalla riga di comando, vim -pera quello che stavo cercando :-)
Rocket Hazmat,



Risposte:


82
:tab all

aprirà tutti i file nell'elenco degli argomenti di Vim in singole schede. L'elenco degli argomenti è inizialmente impostato sull'elenco dei nomi dei file forniti nella riga di comando all'avvio di Vim. L'elenco può essere modificato con i :argscomandi e relativi. Vedere

:help :all
:help argument-list

Esempio:

:args *.c
:tab all

aprirà tutti i file .c nella directory corrente in singole schede.


Non sono sicuro di come funzioni. Dire se desidero aprire tutti i file .txt nella directory corrente, cosa inserire? Se :tab all *.txtentro, vim contrasta con "E488: personaggi finali"
Ash

Ho modificato la risposta per chiarire cosa intendevo con "argomenti". Intendevo l'elenco degli argomenti di Vim anziché argomenti :tab all.
garyjohn,

1
Non so di un unico comando che può farlo, ma si può mettere due comandi su una riga separandoli con una barra verticale, in questo modo: :args *.c | tab all.
garyjohn,

9
L'aspetto negativo è che l'utilizzo :tab allsostituisce le schede esistenti. Per questo motivo, nel mio caso d'uso, non offre molti vantaggi rispetto alla riapertura dei file vim -p. Tuttavia, se esistesse un modo per inserire le schede esistenti :args, potrebbe essere possibile aprire nuove schede e conservare quelle esistenti.
Kevin Qi,

3
Se una scheda è già aperta, sostituire argaddper args.
cdosborn,

4

In realtà è possibile aprire nuove schede e mantenere le schede correnti senza scrivere nuove funzioni. Vedi questa risposta su Stack Overflow: https://stackoverflow.com/a/11430615/200234

:args file1 file2 | argdo tabe

Potresti voler aprire una nuova scheda vuota ( :tabe) prima di farlo, perché il primo file si aprirà nella scheda corrente. Inoltre, una scheda vuota aggiuntiva verrà lasciata aperta (vedi :help argdoper capire perché).


Se stai aggiungendo nuove schede a un set esistente, non sarebbe più semplice farlo :tabe file1?
jpaugh

@jpaugh, la domanda riguarda più file.
Mihai Capota

Non :args | argdo taberisponderebbe alla domanda, comunque? Qual è il motivo per aggiungere nuovi file in questo modo?
jpaugh

@jpaugh, questo è ciò che la domanda chiede: "Credo che l'opzione vim -p <files> si aprirà nelle schede, ma spero di trovare un modo per farlo quando vim è già aperto."
Mihai Capotă,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.