Como dijo ZyX en #vim, esta pregunta suena como "¿Por qué los expertos de Vim prefieren sabroso antes que caliente?" .
Los "expertos de Vim" no prefieren los buffers en lugar de las pestañas: usan buffers como los archivos proxy que son y las páginas de pestañas como los espacios de trabajo que son. Los buffers y las páginas de pestañas tienen diferentes propósitos, por lo que preferir uno a otro no tiene ningún sentido.
El problema con los tampones y las pestañas es de confusión , causado por una combinación de hechos independientes.
La mayoría de los editores de texto e IDE "modernos" usan una metáfora de tabulación para representar los archivos cargados. Esa metáfora actúa como un sistema de información, le muestra al usuario qué archivos se abren y su estado, y como un dispositivo interactivo, le permite manipular (reordenar, seleccionar, cerrar ...) esos archivos abiertos. A pesar de sus muchas limitaciones, las pestañas están en todas partes y las personas están acostumbradas a ellas y las esperan en todas partes.
Vim introdujo páginas de pestañas en 7.0 como una forma para que sus usuarios creen "espacios de trabajo" ad-hoc. Nada en sus características, sus opciones específicas, sus comandos específicos o sus :help
secciones sugiere que las páginas de pestañas podrían o deberían usarse como archivos proxy.
Nada, excepto el nombre y la apariencia de las "páginas de pestañas", por supuesto, lo que genera mucha confusión.
Sin :set hidden
, que está deshabilitado de forma predeterminada y no es muy fácil de encontrar, Vim hace que sea imposible cambiar a otro búfer sin escribir el actual o abandonar sus cambios. Los nuevos usuarios, que desconocen esa opción, no tienen más remedio que recurrir al uso de ventanas pesadas o a la función "similar a una pestaña" más cercana que pueden encontrar: páginas de pestañas.
La "página de pestañas" es una elección de nombre desafortunada para esa función, especialmente en una era dominada por la idea de que leer la documentación es una pérdida de tiempo.
En Vim, las páginas con pestañas son una abstracción construida en la parte superior de las ventanas, una abstracción construida en la parte superior de los buffers. Cada nuevo nivel agrega características útiles pero restringe su flujo de trabajo.
La "forma de amortiguación"
Con un flujo de trabajo basado en búfer, los archivos con los que está trabajando se distribuyen en una sola dimensión. Puede desplazarse por sus búferes, puede acceder a un búfer específico escribiendo parte de su nombre (con finalización) o su número, puede alternar entre búferes, puede orientarlos con bastante facilidad. Básicamente no hay fricción.
Ocho buffers abiertos, solo uno visible:
Cambio por número:
Cambio por nombre:
Los buffers son los archivos proxy de Vim. Si piensa en términos de archivos, piensa en términos de buffers.
El "camino de la ventana"
Con un flujo de trabajo basado en ventanas, sus "archivos" se distribuyen a lo largo de la misma dimensión "virtual" como lo harían si solo utilizara buffers y otras dos dimensiones "físicas". Pero los espacios cartesianos en los que se encuentran esas dimensiones están casi completamente separados: moverse a otro búfer todavía significa "moverse a otro archivo", pero no a otra ventana. El búfer que corresponde al archivo deseado puede mostrarse en esa ventana, pero también puede mostrarse en otra, tal vez en otra página de pestañas, o en absoluto.
Con Windows, navegar entre archivos abiertos se vuelve demasiado complejo o demasiado simplista, incluso con 'switchbuf'
y :sb
. Principalmente porque se ve obligado a usar dos conjuntos de comandos para lo que es esencialmente lo mismo: acceder a un búfer.
Las ventanas tienen su uso, como se describe a continuación, pero no tienen lo necesario para reemplazar las memorias intermedias en el flujo de trabajo de nadie.
Aquí estoy trabajando en un esquema de colores Vim. Las dos ventanas son vistas diferentes del mismo búfer: la superior sirve como referencia, con una tabla de los códigos de color utilizados en el esquema de colores, y la inferior es donde trabajo:
Windows no está diseñado como archivos proxy y no se puede convertir en uno: son "contenedores" o "vistas" diseñados para ofrecerle una vista en un búfer. Ni mas ni menos.
La "forma de tabulación"
Con un flujo de trabajo basado en pestañas, esencialmente intentas imitar la experiencia del usuario a la que estás acostumbrado desde tu editor anterior mientras ignoras por completo la naturaleza misma de las páginas de pestañas de Vim. Si olvidamos por un momento que esta estrategia generalmente es muy improductiva, también es imposible, al igual que con Windows, forzar a Vim a adherirse a ese paradigma "un archivo = una pestaña" sin perder mucha flexibilidad.
Todavía trabajando con los mismos archivos que el anterior, la tabla ocupa un espacio significativo prácticamente sin beneficio. Todos mis archivos y todas mis pestañas se llaman, javascript*.vim
así que no puedo hacerlo 3gt
y estoy seguro de que terminaré en el lugar correcto y es imposible llegar a una pestaña específica por nombre. Agregue a eso el hecho de que su etiqueta puede ser muy inútil pero perfectamente lógica [Quickfix List]
... Dado que no hay una forma práctica de vincular un archivo / búfer a una página de pestañas, básicamente solo le queda una forma práctica de navegar entre las páginas de pestañas / buffers / files: ciclismo.
Y sí, mi línea de pestañas está cubierta con solo 8 pestañas, ¡imagínese si tuviera 20!
Ocho buffers abiertos en ocho páginas de pestañas (incorrecto)
Dos pestañas para dos tareas específicas (derecha)
Las páginas con pestañas son "contenedores" o "viewports" diseñados para contener una o más ventanas, también "contenedores" diseñados para contener buffers.
En conclusión
Los "expertos de Vim" (supongamos que puedo hablar como si fuera uno) no prefieren los tampones a las pestañas: solo usan Vim como fue diseñado y están perfectamente cómodos con ese diseño:
Los "expertos de Vim" tienen 2, 30 o 97 buffers cargados y están muy contentos de no tener que lidiar con la distribución espacial;
cuando necesitan comparar dos archivos o trabajar en una parte del búfer actual mientras mantienen otro como referencia, los "expertos de Vim" usan ventanas porque así es como deben usarse;
cuando necesitan trabajar por un tiempo en una parte separada del proyecto sin meterse con su vista actual, los "expertos de Vim" cargan una nueva página de pestañas.