Wie kann ich das Terminal in mehrere Ansichten aufteilen?

264

Von vi, wenn Sie den Befehl :sp, teilt sich der Bildschirm in zwei „Ansichten“, so dass Sie mehr als eine Datei aus dem gleichen Endgerät bearbeiten.

Gibt es eine Möglichkeit, mehrere Shells im selben Terminal zu öffnen?

Justin Ethier
quelle

Antworten:

350

Sie können dies im screenTerminal-Multiplexer tun .

  • Vertikal teilen: ctrladann |.
  • Horizontal teilen: ctrladann S(Großbuchstaben).
  • Zum Aufheben der Teilung: ctrladann Q(Großbuchstabe 'q').
  • So wechseln Sie von einem zum anderen: ctrladanntab

Hinweis: Nach der Spaltung, müssen Sie in die neue Region gehen und eine neue Sitzung über beginnen ctrladann , cbevor Sie diesen Bereich nutzen können.

EDIT, grundlegende Bildschirmnutzung:

  • Neues Terminal: ctrladann c.
  • Nächstes Terminal: ctrladann space.
  • Vorheriges Terminal: ctrladann backspace.
  • N - ten Endgerät ctrladann [n]. (funktioniert für n∈ {0,1… 9})
  • Wechseln zwischen Terminals mithilfe der Liste: ctrlathen " (nützlich, wenn mehr als 10 Terminals vorhanden sind)
  • Dann ctrlaan das zugrunde liegende Terminal senden .ctrlaa
Shellholic
quelle
18
Tmux tut dies auch, und viele Terminalprogramme haben geteilte Ansichten und Registerkarten.
Shawn J. Goff
3
@ AaronNewton ctrl+adann alles dann veröffentlichen shift+s(weiß nicht für Feststelltaste, meine ist deaktiviert)
Shellholic
4
Ctrl A Shift Steilt den Bildschirm, wechselt dann Ctrl A Tabzum anderen Split und Ctrl A cerstellt eine Bash-Eingabeaufforderung. Müssen diese Befehle beim Start trotzdem automatisch ausgeführt werden, screendamit wir sie nicht ständig ausführen müssen?
Michael Butler
2
Welche Bildschirmversion für die vertikale Aufteilung? Die Version, die ich installiert habe, ist 4.00.03. Dies entspricht dem neuesten verfügbaren Download von allen von mir überprüften Spiegeln.
Brian Vandenberg
1
Wie mache ich eines meiner vertikalen Fenster breiter als das andere? Ich möchte einen 30 | 30 | 40 Split.
18.
108

Versuchen Sie tmux (Terminal MUltipleXer):

tmux screenshot

Und zu verstehen , den Unterschied zwischen session, windowund pane: tmuxnestings

Yonatan Maman
quelle
20
Bildschirm vs tmux? tmux ist wahrscheinlich besser für fortgeschrittene Benutzer und moderner, aber der Bildschirm ist überall installiert und funktioniert einwandfrei.
user606723
Weitere tmuxhilfreiche Ressourcen sind: Intro , Config , Primer und Cheat-Sheet .
not2qubit
1
@ user606723 unter anderem ist die tmux konfiguration tatsächlich lesbar; nicht wie ein Hund über die Tastatur gerollt. Natürlich können Sie mit einem Wrapper wie byobu(der beide Terminal-Multiplexer umschließt) auskommen, aber Tmux scheint in einigen Aspekten überlegen zu sein, abgesehen von der Konfiguration. Und war schon vor einigen Jahren überlegen. Screen brauchte Patches, um beide Richtungen aufzuteilen, und Tmux hatte es sofort im Kasten. Zu guter Letzt kann die Lizenz ein Argument für Tmux oder Screen sein, je nachdem, wo Sie stehen.
0xC0000022L
1
@ user606723 ab 2019 stimmt das nicht mehr. screenfehlt in einer relativ neuen Installation von Fedora 30, solange tmuxvorhanden.
Sora.
64

Wie in den Kommentaren erwähnt, ist tmux neben screen ein weiterer guter Terminal-Multiplexer . Eine vollständige Beschreibung und Befehlsreferenz finden Sie im Handbuch. Einige grundlegende Vorgänge sind:

  • Bildschirm vertikal teilen: CtrlbundShift5
  • Bildschirm horizontal teilen: CtrlbundShift"
  • Zwischen den Fenstern wechseln: Ctrlbundo
  • Aktuelles Fenster schließen: Ctrlbundx

Sie können komplexere Layouts erzielen, indem Sie die Fenster teilen. Sie können auch mehrere Fenster mit Fenstern haben und zwischen diesen wechseln.

  • Fenster erstellen: Ctrlbundc
  • Zum nächsten Fenster wechseln: Ctrlbundn
  • Zum vorherigen Fenster wechseln: Ctrlbundp
  • Aktuelles Fenster zerstören: CtrlbundShift7
dkaragasidis
quelle
3
Beachten Sie, dass Sie das Präfix von tmux in etwas ändern können, das leichter zu erreichen ist als <Cb>.
21

Wenn Sie ein Programm wollen, das nur ein Terminal aufteilt¹ , gibt es splitvt . Es gibt Programme, die ein Terminal aufteilen und viele andere Dinge tun, wie zB Screen, Tmux, Emacs, ...

¹ Es ist das Terminal, das Sie aufteilen, nicht die Shell.

Gilles
quelle
+1, guter Punkt darüber, wie das Terminal ist, was wirklich geteilt wird.
Justin Ethier
19

Abgesehen von den hervorragenden Vorschlägen für Screen und Tmux, wenn Sie einen Fenstermanager verwenden, der Sie möglicherweise interessiert , können Sie Terminator horizontal oder vertikal teilen. Außerdem finden Sie hier eine Liste der Funktionen auf der Website des Autors :

  • Ordnen Sie Terminals in einem Raster an
  • Tabs
  • Neuanordnung der Terminals per Drag & Drop
  • Viele Tastaturkürzel
  • Speichern Sie mehrere Layouts und Profile über den GUI-Einstellungseditor
  • Gleichzeitiges Tippen auf beliebige Terminalgruppen

Schauen Sie sich die Screenshots auf der Projektseite an.

Am wichtigsten ist, dass Sie Terminator mit Screen / Tmux kombinieren können.

alemani
quelle
2
Beachten Sie, dass die Verwendung von Terminator-Splits beim Kopieren zwischen zwei Fenstern Ihres Editors weniger praktisch ist.
gb.
Sie können mehrere Fenster gleichzeitig bearbeiten, nachdem Sie die Fenster gruppiert haben (oder einfach alle gleichzeitig auswählen), und Sie können auch die Verknüpfungen für den Fensterwechsel bearbeiten. Ich habe ctrl-shift-h/j/k/lzum Wechseln zwischen den Fenstern und Strg- (Shift) -Tab zum Wechseln zwischen Registerkarten, es funktioniert einfach genial.
Sjas
1
Gut, wir können auf sie klicken, um uns zu konzentrieren. Aber ich kann immer noch keinen Weg finden, um die Terminals im Grid gleichmäßig zu verteilen. Es ist nur ein Durcheinander, das von Hand behoben werden muss. Außerdem muss ich Terminals dynamisch hinzufügen, um sie in einem gleichmäßig verteilten Grid zu aktualisieren. Irgendeine Idee?
Aquarius Power
Terminator ist ein X-Windows-Programm, kein Kommandozeilenprogramm wie tmux und screen. Das OP speziell same terminalzweimal erwähnt , so Terminator oder Tilix (wie von @sjas erwähnt) sind keine guten Vorschläge. Wenn Sie sich in einer SSH-Sitzung mit einem Remoteserver ohne X-Server befinden, können Sie diese Tools nicht einmal ausführen.
haridsv
8

Konsole für KDE hat eine eingebaute Funktion :

  • Ctrl+, (um die Ansicht nach links / rechts zu teilen

  • Ctrl+ )zur geteilten Ansicht von oben / unten

  • Shift+ Tabdurchläuft die geteilten Ansichten

  • Shift+ Left Arrow/ Right Arrowschaltet die aktuelle Ansicht durch die Registerkarten / Ansichten

  • Ctrl+ Shift+ Xum die aktuelle Ansicht zu schließen

MrUser
quelle
Kennen Sie die Tastaturkürzel zum Wechseln zwischen den geteilten Ansichtsfenstern in der Konsole?
LangeHaare
1
@LangeHaare UMSCHALT + TAB wechselt zwischen den Ansichtsfenstern
Chaptuck
7

Verwenden Terminator .

Sollte über Ihren bevorzugten Paketmanager verfügbar sein, wenn Sie eine Mainstream-Distribution verwenden.

Es ist der einzige Terminal-Multiplexer, bei dem das Einfügen von Kopien in Fensterbereichen in Ihrem Fenster ordnungsgemäß funktioniert.

Update: tilixist eine terminatorAlternative, die dem Terminator fast gleichkommt (und bei der Copypasting auch einwandfrei funktioniert). Nach dem Auswerten bleibe ich terminatorjedoch aufgrund der besseren Handhabung der Registerkarten und der einfacheren Konfiguration (von meinem POV aus) weiterhin dabei.

sjas
quelle
Terminator ist technisch gesehen kein Multiplexer: "Ein Terminal-Multiplexer ist eine Softwareanwendung, mit der mehrere virtuelle Konsolen gemultiplext werden können, um einem Benutzer den Zugriff auf mehrere separate Terminalsitzungen innerhalb eines einzelnen Terminalfensters oder einer Remote-Terminalsitzung zu ermöglichen." (aus Wikipedia)
erb
Es ist auch nicht der einzige Multiplexer, bei dem das Einfügen von Kopien in Fensterbereichen ordnungsgemäß funktioniert.
Erb
@erb - was genau muss konfiguriert werden, wenn ich beim Dreifachklick keine vollständigen Zeilen auswählen möchte, die sich über mehrere Terminals erstrecken, und warum ist das nicht die vernünftige Standardeinstellung?
Sjas
1
Sie können den Kopiermodus in tmux verwenden, um zu kopieren. Wenn Sie die Maus verwenden möchten, müssen Sie nur die Mausunterstützung aktivieren. Meine Konfiguration finden Sie hier: github.com/ErikBjare/dotfiles/blob/master/home/. tmux /… Wenn Sie die Systemzwischenablage im Kopiermodus verwenden möchten, lesen Sie Folgendes
erb
2
Huh? Warum nicht? Sie können es fast genau (wenn nicht genau) wie bei der Auswahl im Terminator zum Funktionieren bringen. Ich war aus dem gleichen Grund ein Terminator-Benutzer, nachdem ich die Konfiguration fertiggestellt hatte, habe ich nie zurückgeschaut und kann jetzt durch den Wechsel zu einem leichteren Terminal-Emulator einiges an RAM und anderen Ressourcen sparen, da das Kopieren das einzige war, was mich ärgerte.
Erb
4

Guake + Byobu

Ich bin ein zufriedener Benutzer von Guake mit Byobu , das standardmäßig verwendet wird tmux( wahrscheinlich besser als screen).

Drei Schritte

  1. Installiere sie (keine PPAs auf Ubuntu oder Debian nötig, suche nach anderen Distributionen )

    sudo apt install guake byobu
  2. Fügen Sie es den verfügbaren Shells hinzu (wie ich in dieser Guake Github-Ausgabe gesagt habe ):

    which byobu | sudo tee -a /etc/shells
  3. Wählen Sie in den Guake-Einstellungen ( guake-prefs) Byobu als Standardinterpreter: Bild


  1. Optional: Deaktivieren Sie "Tab-Leiste anzeigen", da Sie dafür Byobu verwenden werden:

    Bild

  2. Wenn eine Verknüpfung nicht funktioniert, deaktivieren Sie möglicherweise störende Guake-Verknüpfungen (in meinem Fall Ctrl+F2für vertikale Teilung): Bildschirmfoto

Andere Vorschläge

  1. Lernen Sie Verknüpfungen mit Shift+ F1oder diesem hervorragenden Screencast .
  2. Lernen Sie die verfügbaren byobu-Terminalbefehle mit apropos byobu
  3. Um die Fn-Tasten im Midnight Commander zu verwenden, verwenden Sie Alt+ oder Shift+ F12, um die Byobu-F-Tasten zu deaktivieren.

Bildschirmfoto

Pablo A
quelle
2

Versuchen Sie Vertical Split für GNU Screen

Dieser Patch bietet eine vertikale Teilungsfunktion für aktuelle Versionen von GNU Screen. Die Funktion ist so konzipiert, dass sie auf die gleiche Weise funktioniert wie der vorhandene Befehl zum Teilen des Bildschirms, jedoch werden die Bereiche nicht horizontal, sondern vertikal geteilt. Beide Formen der Aufteilung können in jeder gewünschten Kombination / Menge / Reihenfolge zusammen verwendet werden. Ähnliches wird in Kürze in GNU Screen 4.1 erscheinen und ist bereits in CVS in diesem Mailinglisten-Thread verfügbar (und in den Debian- und Ubuntu-Screen-Paketen ab 4.0.3-10 enthalten). Ein aktuelles Projekt mit dem Namen ScreenWM wurde speziell für die Verwendung mit einem Bildschirm mit vsplit-Patch entwickelt (probieren Sie es aus!).

Narga
quelle
Um genauer zu sein, Ctrl+|teilt das screenin Ubuntu von Anfang an.
Jonatan Öström