Comment obtenir que vim ouvre plusieurs fichiers simultanément dans des onglets

85

Est-il possible d’obtenir que vim ouvre plusieurs fichiers dans des onglets, de la même manière que la args <path>commande ouvre plusieurs fichiers dans des tampons?

Une :tabe ./*erreur similaire à l'erreur entraîne l'erreur "E77: trop de noms de fichiers", même si le nombre de fichiers est inférieur à la valeur définie dans la tabpagemaxpropriété.

(Je pense que l' vim -p <files>option s'ouvrira dans les onglets, mais j'espère trouver un moyen de le faire quand vim est déjà ouvert.)

Cendre
la source
12
Merci d'avoir mentionné l'option -p; c'est ce que je cherchais
user72923
4
J'ai trouvé cette question via Google. Je cherchais comment ouvrir vim avec des onglets depuis la ligne de commande, vim -pvoilà ce que je cherchais :-)
Rocket Hazmat
Connexe: Ouvrez plusieurs fichiers dans de nouveaux onglets avec VIM au dépassement de capacité.
Mihai Capotă
Connexe: Comment ouvrir plusieurs onglets pour de nombreux fichiers dans vim? au super utilisateur.
Mateusz Piotrowski

Réponses:

82
:tab all

ouvrira tous les fichiers de la liste d'arguments de Vim dans des onglets individuels. La liste d'arguments est initialement définie sur la liste de noms de fichiers indiquée sur la ligne de commande au démarrage de Vim. La liste peut être modifiée avec les :argscommandes et connexes. Voir

:help :all
:help argument-list

Exemple:

:args *.c
:tab all

ouvrira tous les fichiers .c du répertoire actuel dans des onglets individuels.

Garyjohn
la source
Je ne sais pas comment cela est censé fonctionner. Dites si je veux ouvrir tous les fichiers .txt dans le répertoire actuel, qu'est-ce que j'entrerais? Si j'entre :tab all *.txt, les marqueurs vim avec "E488: Caractères suivis"
Cendré
J'ai édité la réponse pour clarifier ce que je voulais dire par "arguments". Je voulais dire la liste des arguments de Vim plutôt que des arguments à :tab all.
garyjohn
1
Je ne sais pas d'une seule commande qui peut le faire, mais vous pouvez mettre deux commandes sur une seule ligne en les séparant par une barre verticale, comme ceci: :args *.c | tab all.
garyjohn
9
L'inconvénient est que l'utilisation :tab allremplace vos onglets existants. Pour cette raison, dans mon cas d'utilisation, cela ne présente pas un grand avantage par rapport à la réouverture de fichiers vim -p. Toutefois, s’il existait un moyen de rentrer les onglets existants :args, il serait peut-être possible d’ouvrir de nouveaux onglets et de conserver ceux qui existent déjà.
Kevin Qi
3
Si un onglet est déjà ouvert, remplacez argaddpar args.
cdosborn
4

En fait, vous pouvez ouvrir de nouveaux onglets et conserver vos onglets actuels sans écrire de nouvelles fonctions. Voir cette réponse sur le dépassement de capacité de la pile: https://stackoverflow.com/a/11430615/200234

:args file1 file2 | argdo tabe

Vous souhaiterez peut-être ouvrir un nouvel onglet vide ( :tabe) avant de le faire, car le premier fichier s'ouvrira dans l'onglet en cours. En outre, un onglet vide supplémentaire sera laissé ouvert (voir :help argdopour comprendre pourquoi).

Mihai Capotă
la source
Si vous ajoutez de nouveaux onglets à un ensemble existant, ne serait-il pas plus simple :tabe file1?
Jpaugh
@ jpaugh, la question concerne plusieurs fichiers.
Mihai Capotă
Ne serait pas :args | argdo taberépondre à la question, cependant? Quelle est la raison pour ajouter de nouveaux fichiers de cette façon?
Jpaugh
@jpaugh, voici ce que la question demande: "Je pense que l'option vim -p <fichiers> s'ouvrira dans les onglets, mais j'espère trouver un moyen de le faire lorsque vim sera déjà ouvert."
Mihai Capotă