Si yo uso:
:tabedit file1 file2
Yo obtengo:
E172: Only one file name allowed
¿Hay alguna forma de usar :tabeditcon múltiples nombres de archivo? ¿O otra forma de abrir varias pestañas a la vez?
tabbed-user-interface
Martin Tournoij
fuente
fuente

:args *.c | tab all. La otra pregunta es más popular que esta, por lo que es bueno vincularla también.Respuestas:
Dados los problemas y la complejidad en mi otra respuesta usando la forma "incorporada" modificando la lista de argumentos, agregué por propia función pequeña para hacer esto:
Ahora puedes usar
:Tabedit *.vim. Esta función expandirá todos los patrones globales y se ejecutará:tabedit <f>para cada archivo. Puede agregar tantos nombres de ruta como desee, por ejemplo, todo esto funciona:Bueno, y así sucesivamente ...
Pongo esto en un pequeño globedit.vim plugin, que también contiene comandos para
:Edit,:Split, etc.fuente
[<f-args>]lugar de"<args>"- de esa manera, elpatternparámetro será una Lista (matriz) y no tendrá que lidiar con la división manual de la cadena. (2) Pase un valor distinto de cero como tercer argumento paraglob()que devuelva una Lista. Entonces puede evitar dividirse manualmente allí también. Tendrá que pasar0como segundo argumento para omitir sin afectar el comportamiento:glob(l:p, 0, 1).Hasta donde sé, la única forma integrada de hacer esto es:
Primero,
:argsreemplazará la lista de argumentos. La lista de argumentos enumera los archivos con los que abrió Vim; por lovim file1 file2medios que contiene la lista de argumentosfile1efile2.Podemos modificar esto en tiempo de ejecución, y Vim abrirá un búfer para cada nueva entrada en la lista de argumentos.
Ver
:help argument-listpara más información.El
:allcomando abre una ventana para cada entrada en la lista de argumentos, el:tabcomando ejecuta un comando y abre una nueva pestaña cuando el comando dado abriría una nueva ventana.Advertencias
Hay algunas advertencias a este método.
En primer lugar, no hay verificación de duplicados, por lo que puede terminar con 2 o más pestañas para el mismo búfer.
Pero el mayor problema es que reemplaza todas sus pestañas con lo que está en la lista de argumentos; entonces perdiste todas las pestañas existentes.
Puede eludir esto un poco usando
:argadd *.vimpara agregar a la lista de argumentos, en lugar de reemplazarlo; pero comandos como:edito:tabeditno , no altera la lista de argumentos, y se perderá esas pestañas menos que se agregan a la lista de argumentos (que todavía tiene en la lista de amortiguamiento, sin embargo). También es posible que no desee abrir todo en su lista de argumentos en una pestaña, tal vez solo quiera abrir 2 archivos como una pestaña adicional.Quizás podría mejorar esto un poco agregando primero agregar todas las pestañas abiertas actualmente a la lista de argumentos (que realmente no puedo poner a trabajar), pero esto aún está lejos de ser perfecto. Si una pestaña tiene 2 o más ventanas, aún las modificará ...
fuente
:argdo tabedit %, lo que abre una nueva pestaña para cada argumento. Comenzar con una pestaña y abrir n nuevas naturalmente te dejaría con n + 1 pestañas.:tab allEs una solución mucho mejor.Puede usar el
:nextcomando en su lugar, por ejemplo:o:
fuente
:args *.vim? Al menos, se comporta igual, y lo:help next_fdocumenta como el mismo ...Desde la línea de comandos puedes usar:
Y si olvidó usar
-ptodavía puede usarPor cierto, no olvides que la variable
tabpagemax(valor predeterminado 10) limita cuántas pestañas puedes abrir de esta manera.fuente
En realidad, puede abrir nuevas pestañas y mantener sus pestañas actuales sin escribir nuevas funciones (consulte esta respuesta en Desbordamiento de pila ):
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é).fuente
:tabnew | args file1 file2 | argdo tabe | tabdo syntax onDebe presionar Entrar para borrar el mensaje y escribir:closepara eliminar el último ( vacío) ... es una gran cantidad de tipeo, y solo vale la pena si está abriendo muchas pestañas (para 2 o 3 archivos, solo usar:tabedos veces sería más rápido).