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).


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



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.


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é).


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ă
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.