Ich suche nach einer Möglichkeit, einer vorhandenen (geteilten) Fensterkonfiguration eine neue Fensteraufteilung in voller Höhe hinzuzufügen. Da ich nicht weiß, wie ich es richtig erklären soll, werde ich nur einige ASCII-Grafiken veröffentlichen, die das gewünschte Verhalten für zwei Beispielfensterkonfigurationen zeigen:
from to +-------------------------+ +---------------------+---+ | | | | | | | | | | | A | => | A | E | | | | | | | | | | | +-------------------------+ +---------------------+---+ +------------+------------+ +----------+----------+---+ | | B | | | B | | | A +------------+ | A +----------+ | | | C | => | | C | E | +------------+------------+ +----------+----------+ | | D | | D | | +-------------------------+ +---------------------+---+
wo übernimmt die Funktion die gewünschte Breite des neuen Fensters E
und schrumpft die Breiten A
, B
, C
, und sich D
entsprechend. Bearbeiten2 : Beachten Sie, dass die beiden obigen Zeichnungen Beispiele für das erwartete Verhalten für einen konkreten Fall sind. Ich suche nach einer allgemeinen Funktion, die dies unabhängig von der Konfiguration in der from- Spalte ausführt (dh die Anzahl der Fenster [Teilungen] in der from-Spalte sollte beliebig sein).
Ich suche diese Funktionalität auch auf der linken Seite und oben und unten in einem Rahmen.
Bearbeiten: Aus @ Nsukamis Kommentar wurde mir klar, dass die Funktionalität, die ich suche, ein Sonderfall eines abstrakteren Problems ist. Also werde ich dieses Problem formulieren:
Wie speichert man eine Fensterkonfiguration (bestehend aus einer beliebigen Anzahl von Fenstern und Puffern) und "fügt" die gespeicherte Konfiguration in ein vorhandenes Fenster ein?
Das "Einfügen" sollte dann die relativen Fenstergrößen und die Aufteilung beibehalten; Natürlich ist die resultierende eingefügte Konfiguration eine skalierte Kopie.
A
, B
, C
, und D
) und dann Einsatz dieses Layouts in ein neues Fenster? Dann könnte mein Problem gelöst werden, indem 1) die aktuelle Fensterkonfiguration gespeichert wird, 2) das Layout so geändert wird, dass nur ein Fenster angezeigt wird, das dann horizontal geteilt wird [im Wesentlichen das Fenster für E
und das Platzhalterfenster für die anderen bilden, nennen wir es Z
], 3 ) Endlich Einfügen des ursprünglichen Layouts in das linke Fenster ( Z
)
split-window-right
as übergeben wirdC-u -width C-x 3
. Ändern Sie daswidth
zu was Sie wollen und notieren Sie das negative Vorzeichen.