Una ventana por proyecto

9

Estoy trabajando en varios proyectos en este momento. Quiero una sola instancia de Emacs para manejarlos a todos. Lo que quiero es un comportamiento tipo tmux en el que cada 'ventana' (en el sentido de Emacs) corresponda a un proyecto que contenga buffers de los archivos relacionados con ese proyecto. Hay varias ventanas, cada una correspondiente a un proyecto y debería poder cambiar entre ellas (algo similar a C-b w)

¿Esta funcionalidad ya está presente de alguna forma? Supongo que será genial tenerlo ya que las otras opciones son:

  • Tener varias instancias de Emacs abiertas.
  • Tenga todos los archivos de todos los proyectos en una sola instancia, lo que hace que el cambio de buffers sea difícil.
sudeepdino008
fuente
2
Para la gestión de proyectos, ¿has probado la perspectiva ?
cutejumper
Pruebe esta publicación de blog en Emacs como un multiplexor de terminal avanzado : obtendrá un comportamiento similar a Tmux. Simplemente me topé con él, lo puse a trabajar y hace lo que anuncia. Además, obtendrá ace-jump-mode, en sí mismo, una solución genial para saltar rápidamente con el cursor en un búfer (si aún no lo tiene).
Si está dispuesto a invertir algo de tiempo de configuración inicial para definir las condiciones para los proyectos, puede asignarlos a un marco cada uno y usar frame-bufs. Consulte también Cómo interceptar un archivo antes de que se abra y decidir qué marco - stackoverflow.com/questions/18346785/… - para mostrar un búfer en un marco de destino, y puede usarlo frame-buffs--add-bufferconjuntamente para obtener el marco asociado. Puede casarse frame-bufscon tabbary tampones asociado / eliminar de forma dinámica: emacs.stackexchange.com/a/10112/2287
lawlist
Aquí está el enlace para frame-bufsasociar buffers con un marco en particular: github.com/alpaker/Frame-Bufs/blob/master/frame-bufs.el
lawlist
@cutejumper La perspectiva es perfecta. Puedes escribirlo como respuesta para que yo pueda marcarlo correctamente.
sudeepdino008

Respuestas:

7

Puede usar la perspectiva para gestionar proyectos. De su LÉAME:

perspective.el proporciona múltiples espacios de trabajo (o "perspectivas") para cada marco de Emacs. Esto facilita trabajar en muchos proyectos separados sin perderse en todos los buffers.

Cada perspectiva se compone de una configuración de ventana y un conjunto de buffers. Cambiar a una perspectiva activa su configuración de ventana, y cuando está en una perspectiva solo sus buffers están disponibles por defecto.

También hay otra versión en modo persp , que es un poco diferente de la original. Las perspectivas se comparten entre los marcos y los estados se pueden guardar en el disco.

Si está utilizando proyectil , también hay una integración en perspectiva .

lindo puente
fuente
5

Puede probar el modo de ceja , que gestiona múltiples diseños de ventana (quizás complicados). Puede cambiar entre configuraciones de ventana con pulsaciones de teclas como C-c C-w 1y C-c C-w 2.

Eric Brown
fuente
1
Eyebrowse comparte el búfer entre espacios de trabajo. Eso podría ser indeseable
sudeepdino008
2

Una solución "básica" podría usarse C-x r wpara registrar el estado actual de la ventana y C-x r jvolver a una anterior.

Stefan
fuente
2

Yo uso una combinación de un par de paquetes diferentes.

Lo más importante es que uso Projectile para trabajar en un "proyecto" y encontrar archivos borrosos. Utilizo varios marcos, uno para cada proyecto en el que estoy trabajando actualmente. Realmente solo necesita saber C-x 5 2y C-x 5 0crear / eliminar un marco. Para gestionar el cambio entre proyectos y para almacenar el estado de la configuración / división de ventanas, utilizo Grupos de trabajo para ventanas (para emacs) .

Me gusta esta configuración porque potencialmente puedo cambiar un paquete por otro.

Mike Nichols
fuente