2012-04-02 8 views
13

Siempre estoy trabajando en múltiples bases de código al mismo tiempo. Por lo general, una biblioteca interna, una aplicación web y algún servicio.Grupos/pestañas de almacenamiento intermedio de Emacs

¿Hay alguna forma con Emacs de tener múltiples almacenamientos intermedios abiertos para cada base de código pero tener esos almacenamientos intermedios agrupados? Al igual que una pestaña para cada base de código o grupos, puedo cambiar fácilmente.

He comprobado tabbar-mode que no es lo que estoy buscando. Estoy buscando una manera fácil de pasar rápidamente de trabajar en una base de código a otra. Como guardar un conjunto de ventanas para cada proyecto y cambiar rápidamente entre ellas.

¿Alguna idea?

+1

[mira esto] (http: //scottfrazersblog.blogspot.com/2009/12/emacs-named-desktop-sessions.html) – Tom

+1

Necesita aclarar qué es exactamente lo que está buscando. ¿Es un widget gráfico como una pestaña en la que haces clic? ¿Qué sucede después de hacer clic en él? –

+0

Aquí hay un enlace a lo que se ha convertido en lo que considero que es el hilo autoritario en la agrupación de buffer estilo tabbar: https://emacs.stackexchange.com/questions/10081/browser-style-tabs-for-emacs – lawlist

Respuesta

7

algunas sugerencias:

  1. ibuffer es un reemplazo avanzado para list-buffers que podrá asociar a C-x C-b en su lugar. Esto le permite filtrar la lista de almacenamiento intermedio por diversos criterios, combinar filtros en grupos y organizar los grupos como desee; también puede guardar sus filtros y grupos para restaurarlos más tarde. Utilice C-hm desde el buffer de ibuffer para ver todas las opciones. Consulte también: Emacs: help me understand file/buffer management

  2. probar una de las diversas bibliotecas de tamiz para Emacs, tales como Elscreen o Escreen. Nunca he tenido la oportunidad de probarlos yo mismo, pero entiendo que puedes tener listas separadas de buffer por pantalla, lo que parece que se adapta a tus propósitos.

  3. Si desea una separación aún mayor, de modo que cuando un proyecto esté 'activo', el búfer de los demás no esté disponible, entonces no sé de qué manera hacerlo en una sola instancia de Emacs , pero en esa situación simplemente comenzaría varias instancias de Emacs; uno para cada proyecto Emacs es lo suficientemente ligero en hardware moderno que este es un enfoque completamente razonable.

6

Tener un vistazo a projectile - una sencilla y discreta lib gestión de proyectos para Emacs. Una de sus características es cambiar de forma exacta a los buffers de un proyecto específico (C-c p b).

+1

+1 para proyectil. ¡Muy útil! – Tvaroh

5

Uso ibuffer para este propósito, junto con mi ibuffer-vc extension (disponible a través de Marmalade); esta extensión agrupa los almacenamientos intermedios de acuerdo con el proyecto de control de versiones al que pertenecen, que es IMO, una forma ideal de agrupación de almacenamientos intermedios orientada a programadores.

0

@Phils respuesta es la correcta: ibuffer es la manera estándar para ir, divertido por cierto que the official doc doesn't even mention it.

personalmente reasignar el mapa de edad (list-buffers) a ella:

(global-set-key (kbd "C-x C-b") 'ibuffer) 

En cuanto a la parte de "agrupación" de su pregunta, puede utilizar esta:

(defvar ibuffer-saved-filter-groups 
    '(("home" 
    ("emacs-config" (or (filename . ".emacs.d") 
         (filename . ".emacs")))   
    ("Org" (or (mode . org-mode) 
       (filename . "OrgMode"))) 
    ("Faust" (or (mode . faust-mode) 
        (filename . "\\.dsp\\'"))) 
    ("Help" (or (name . "\*Help\*") 
       (name . "\*Apropos\*") 
       (name . "\*info\*")))))) 
Cuestiones relacionadas