Me gustaría pestañas como Firefox pero para emacs.
Encontré esto: http://emacswiki.org/emacs/TabBarMode
Pero solo agrega a cada búfer ( ventana en la terminología de Emacs) una barra que muestra los búferes abiertos actualmente.
Me gustaría que una pestaña pudiera contener múltiples buffers ( ventanas en la teminología de Emacs), que puedo dividir según lo desee. Es decir, cada pestaña debe corresponder a un "estado de ventana" (en el sentido de window-state-get).
Tendría una pestaña para mis tareas, otra para el código, otra para leer en la web, etc.
es posible? ¿Se puede adaptar el tabbar para hacer esto?
[edit2]
Esta pregunta ha atraído más atención de lo que esperaba. Parece que hay una solución, pero que requeriría un poco de investigación y ajustes. Si bien esta semana próxima está un poco ocupada para mí, analizaré las respuestas e intentaré crear algo que funcione y luego editaré esta pregunta para reflejar mis hallazgos. Por favor espera =)
[editar] Más o menos
similar a:
/programming/24157754/make-frames-in-emacs-gui-behaves-like-frames-in-terminal
También me conformaría con múltiples marcos en una sola sesión de GUI.

Respuestas:
Split buffers en grupos
Es posible con tabbar. Puede agregar reglas para agrupar buffers en grupos. Aquí hay un fragmento básico:
Reglas de ejemplo:
Una vez que compuso las reglas, puede presionar + o - en la línea de pestañas de la barra de pestañas para alternar grupos, y también ◀ y ▶ para cambiar entre buffers. O simplemente une los siguientes defuns:
y moverse entre pestañas y grupos de pestañas con el teclado.
Personalmente, agrupo las pestañas para ver lo que está abierto, pero navegar con ellas
ido-switch-buffer.Cambiar entre un conjunto de reglas
También se puede definir un conjunto diferente de reglas de agrupación de búfer y alternar entre ellas. Aquí hay un ejemplo de ciclo entre dos conjuntos de reglas de agrupación de búfer:
Esto alterna entre
tabbar-buffer-groups-commony latabbar-buffer-groupsagrupación de tabulaciones defuns.Ordenar los búferes de tabbar por nombre
Me resulta beneficioso ordenar los búferes de tabbar por nombre. Aquí se explica cómo obtenerlo:
fuente
ATRIBUTO: La agrupación de buffers por cuadro es una implementación directa de los conceptos y porciones selectas de código desarrolladas / escritas por Alp Aker en la biblioteca frame-bufs: https://github.com/alpaker/Frame-Bufs
El siguiente es un ejemplo de cómo usar la biblioteca
tabbar.ely agrupar pestañas / buffers dinámicamente por cuadro agregando pestañas / buffers conC-c C-ao eliminando pestañas / buffers conC-c C-n. Solo hay dos (2) grupos: asociados con el cuadro actual (es decir"A") y NO asociados con el cuadro actual (es decir"N"). Los grupos son marco local, lo que significa que cada marco puede tener su propia agrupación. La agrupación personalizada se puede restablecer conC-c C-r. Cambiar entre grupos asociados y no asociados conC-tab. Cambie a la siguiente pestaña / búfer en el grupo actual conM-s-right. Cambie a la pestaña / búfer anterior en el grupo actual conM-s-left.Las pestañas / buffers se pueden agregar o quitar mediante programación con
my-add-bufferymy-remove-buffer. Para ver un ejemplo de cómo abrir ciertos búferes en marcos seleccionados, consulte el hilo relacionado titulado Cómo interceptar un archivo antes de abrirlo y decidir qué marco : /programming//a/18371427/2112489 La funciónmy-add-buffernecesitaría incorporarse en las ubicaciones apropiadas del código en el enlace anterior si un usuario elige implementar esa característica.El usuario puede desear crear una entrada en una costumbre
mode-line-formatque muestre el nombre del grupo de pestañas actual en la línea de modo incorporando el siguiente fragmento:(:eval (when tabbar-mode (format "%s" (tabbar-current-tabset t))))Personalizar la línea de modo con más detalle, sin embargo, está más allá del alcance de este ejemplo.La función
tabbar-add-tabse ha modificado para alfabetizar las pestañas / buffers.La función
tabbar-line-tabse ha modificado para proporcionar cuatro (4) caras diferentes según la situación. Si la pestaña / búfer está asociada con el marco y se selecciona IS, entonces usetabbar-selected-associatedface. Si la pestaña / búfer está asociada con el marco y NO está seleccionada, utilice latabbar-unselected-associatedcara. Si la pestaña / búfer NO está asociada con el marco y se selecciona IS, entonces use latabbar-selected-unassociatedcara. Si la pestaña / búfer NO está asociada con el marco y NO está seleccionada, entonces use latabbar-unselected-unassociatedcara.La siguiente captura de pantalla muestra las dos posibles agrupaciones de búferes / pestañas: (1) a la izquierda hay una agrupación de los búferes / pestañas que están asociados con el marco denominado
SYSTEM[pestañas amarillas y blancas], con la letra mayúscula "A" indicada en el línea de modo; y (2) a la derecha hay una agrupación de los búferes / pestañas que NO están asociados con el cuadro denominadoSYSTEM[pestañas azules y rojas], con una letra mayúscula "N" indicada en la línea de modo.fuente
Considere revisar elscreen , aunque en realidad no agrupa los buffers.
Lo que hace es agrupar ventanas y proporcionar acceso a múltiples diseños (pestañas) entre los que puede moverse rápidamente. Mi flujo de trabajo a menudo tiene un código Ruby y pruebas asociadas en una pantalla, mientras que mis notas de tarea y Org están en otra, y tal vez un búfer de memoria virtual para redactar consultas SQL está en una tercera. Esto me permite saltar fácilmente entre tareas y proyectos, a pesar de que cada pantalla se basa en el mismo grupo de buffers.
fuente
¿Qué tal mi plugin, centaur-tabs? Tiene muchas opciones de configuración, es realmente funcional, es compatible con temas muy populares como Kaolin Themes y, en general, es un paquete muy atractivo y estético (según los comentarios del usuario). Está disponible en MELPA y se ve así:
fuente
Aquí está mi configuración, por lo que vale. Cuenta con:
mouse-2para cerrar, como en los navegadores ,mouse-3para abrir en una nueva ventana de Emacs, como en i3 )M-lefty pestañas del interruptor derecho, como en TMux / Screen )moe-darkconfiguración " Tema Moe / " incluida)*buffers*y "regular")Barra de pestañas
Anexo 1 - Tema Moe
Anexo 2: alternar los 2 últimos búferes (macro KB)
fuente