Cómo hacer que vim abra múltiples archivos en pestañas a la vez

85

¿Es posible obtener vim para abrir múltiples archivos en pestañas, de forma similar a la forma en que el args <path>comando abrirá múltiples archivos en buffers?

Hacer algo como esto :tabe ./*da como resultado el error "E77: Demasiados nombres de archivo", aunque el número de archivos es menor que el valor establecido en la tabpagemaxpropiedad.

(Creo que la vim -p <files>opción se abrirá en pestañas, pero espero encontrar una manera de hacerlo cuando vim ya esté abierto).

Ceniza
fuente
12
Gracias por mencionar la opción -p; eso es lo que estaba buscando
user72923
44
Encontré esta pregunta a través de Google. Estaba buscando cómo abrir vim con pestañas desde la línea de comandos, vim -pera lo que estaba buscando :-)
Rocket Hazmat
2
Relacionado: ¿Cómo puedo abrir varias pestañas a la vez? en Vim SE
kenorb
Relacionado: Abra varios archivos en nuevas pestañas con VIM en Stack Overflow.
Mihai Capotă
Relacionado: ¿Cómo abrir muchas pestañas para muchos archivos en vim? en Super User.
Mateusz Piotrowski

Respuestas:

82
:tab all

abrirá todos los archivos en la lista de argumentos de Vim en pestañas individuales. La lista de argumentos se establece inicialmente en la lista de nombres de archivo dados en la línea de comando cuando se inicia Vim. La lista se puede cambiar con los :argscomandos relacionados. Ver

:help :all
:help argument-list

Ejemplo:

:args *.c
:tab all

abrirá todos los archivos .c en el directorio actual en pestañas individuales.

garyjohn
fuente
No estoy seguro de cómo debe funcionar esto. Diga si quiero abrir todos los archivos .txt en el directorio actual, ¿qué ingresaría? Si entro :tab all *.txt, vim responde con "E488: Caracteres finales"
Ash
Edité la respuesta para aclarar lo que quería decir con "argumentos". Me refería a la lista de argumentos de Vim en lugar de argumentos a :tab all.
garyjohn
1
No sé de un solo comando que puede hacer eso, pero se puede poner dos comandos en una sola línea separándolas con una barra vertical, como esto: :args *.c | tab all.
garyjohn
99
La desventaja es que el uso :tab allreemplaza sus pestañas existentes. Debido a esto, en mi caso de uso, no proporciona muchos beneficios sobre la reapertura de archivos vim -p. Sin embargo, si hubiera alguna forma de insertar las pestañas existentes :args, podría ser posible abrir pestañas nuevas y conservar las existentes.
Kevin Qi
3
Si una pestaña ya está abierta, sustituya argaddpor args.
cdosborn
4

En realidad, puede abrir pestañas nuevas y mantener sus pestañas actuales sin escribir nuevas funciones. Vea esta respuesta en Desbordamiento de pila: https://stackoverflow.com/a/11430615/200234

:args file1 file2 | argdo tabe

Es posible que desee abrir una nueva pestaña vacía ( :tabe) antes de hacerlo, porque el primer archivo se abrirá en la pestaña actual. Además, una pestaña vacía adicional se dejará abierta (vea :help argdopara entender por qué).

Mihai Capotă
fuente
Si está agregando nuevas pestañas a un conjunto existente, ¿no sería más fácil simplemente :tabe file1?
jpaugh
@jpaugh, la pregunta es sobre múltiples archivos.
Mihai Capotă
¿Pero no :args | argdo taberespondería la pregunta? ¿Cuál es la razón para agregar nuevos archivos de esta manera?
jpaugh
@jpaugh, esto es lo que pide la pregunta: "Creo que la opción vim -p <files> se abrirá en pestañas, pero espero encontrar una manera de hacerlo cuando vim ya esté abierta".
Mihai Capotă