Ein Fenster pro Projekt


9

Ich arbeite gerade an mehreren Projekten. Ich möchte, dass eine einzelne Instanz von Emacs sie alle verarbeitet. Was ich möchte, ist ein tmux-ähnliches Verhalten, bei dem jedes 'Fenster' (im Emacs-Sinne) einem Projekt entspricht, das Puffer der Dateien enthält, die sich auf dieses Projekt beziehen. Es gibt mehrere Fenster, von denen jedes einem Projekt entspricht, und ich sollte in der Lage sein, zwischen ihnen zu wechseln (ähnlich wie C-b w)

Ist diese Funktionalität bereits in irgendeiner Form vorhanden? Ich denke, es wird cool sein, da die anderen Optionen entweder sind:

  • Haben Sie mehrere Instanzen von Emacs geöffnet.
  • Haben Sie alle Dateien aller Projekte in einer einzigen Instanz, was das Wechseln der Puffer zu einem Problem macht.

2
Haben Sie für das Projektmanagement die Perspektive ausprobiert ?
cutejumper

Probieren Sie diesen Blog-Beitrag über Emacs als fortschrittlichen Terminal-Multiplexer aus : Sie erhalten ein Tmux-ähnliches Verhalten. Ich bin nur darauf gestoßen, habe es zum Laufen gebracht und es macht das, was es bewirbt. Darüber hinaus erhalten Sie ace-jump-modean sich eine coole Lösung, um schnell mit dem Cursor in einem Puffer herumzuspringen (falls Sie ihn noch nicht haben).

Wenn Sie bereit sind, eine anfängliche Einrichtungszeit zu investieren, um Bedingungen für Projekte zu definieren, können Sie diese jeweils einem Frame zuordnen und verwenden frame-bufs. Siehe auch So fangen Sie eine Datei ab, bevor sie geöffnet wird, und entscheiden, welcher Frame - stackoverflow.com/questions/18346785/… - einen Puffer in einem Zielframe anzeigen soll. Sie können ihn auch verwenden frame-buffs--add-buffer, um den Frame zuzuordnen . Sie können frame-bufsmit tabbarPuffern heiraten und sie dynamisch verknüpfen / entfernen: emacs.stackexchange.com/a/10112/2287
lawlist

Hier ist der Link, frame-bufsum Puffer einem bestimmten Frame
zuzuordnen

@cutejumper Perspektive ist perfekt. Sie könnten es als Antwort schreiben, damit ich es richtig ankreuzen kann.
sudeepdino008

Antworten:


7

Sie können die Perspektive zum Verwalten von Projekten verwenden. Aus seiner README:

perspektive.el bietet mehrere Arbeitsbereiche (oder "Perspektiven") für jeden Emacs-Frame. Dies macht es einfach, an vielen separaten Projekten zu arbeiten, ohne in allen Puffern verloren zu gehen.

Jede Perspektive besteht aus einer Fensterkonfiguration und einer Reihe von Puffern. Durch das Wechseln zu einer Perspektive wird die Fensterkonfiguration aktiviert. In einer Perspektive sind standardmäßig nur die Puffer verfügbar.

Es gibt auch einen anderen Persp-Modus , der sich ein wenig vom Original unterscheidet. Die Perspektiven werden von Frames gemeinsam genutzt und die Status können auf der Festplatte gespeichert werden.

Wenn Sie ein Projektil verwenden , gibt es auch eine perspektivische Integration .


5

Sie können den Augenbrauenmodus ausprobieren , der mehrere (möglicherweise komplizierte) Fensterlayouts verwaltet. Sie können mit Tastenanschlägen wie C-c C-w 1und zwischen Fensterkonfigurationen wechseln C-c C-w 2.


1
Eyebrowse teilt den Puffer zwischen den Arbeitsbereichen. Das könnte unerwünscht sein
sudeepdino008

2

Eine "Barebone" -Lösung kann verwendet werden C-x r w, um den aktuellen Fensterstatus aufzuzeichnen und C-x r jzu einem früheren zurückzukehren.


2

Ich benutze eine Kombination aus ein paar verschiedenen Paketen.

Am wichtigsten ist, dass ich Projectile verwende, um an einem "Projekt" zu arbeiten und Dateien unscharf zu finden. Ich verwende mehrere Frames, einen für jedes Projekt, an dem ich gerade arbeite. Sie müssen wirklich nur einen Frame kennen C-x 5 2und C-x 5 0erstellen / töten. Um das Wechseln zwischen Projekten zu verwalten und den Status der Fensterkonfiguration / -aufteilung zu speichern, verwende ich Arbeitsgruppen für Windows (für Emacs) .

Ich mag dieses Setup, weil ich möglicherweise ein Paket gegen ein anderes austauschen kann.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.