Come dividere il terminale in più di una "vista"?


264

Da vi, se si emette il comando :sp, lo schermo si divide in due "viste", consentendo di modificare più di un file dallo stesso terminale.

Sulla stessa linea, c'è un modo per avere più shell aperte nello stesso terminale?

Risposte:


351

Puoi farlo nel screenmultiplexer terminale.

  • Per dividere verticalmente: ctrlaquindi |.
  • Per dividere in orizzontale: ctrlaquindi S(lettere maiuscole).
  • Per dividere: ctrlaquindi Q('q' maiuscolo).
  • Per passare dall'uno all'altro: ctrlaquinditab

Nota: Dopo la scissione, è necessario andare nella nuova regione e avviare una nuova sessione tramite ctrlaallora cprima di poter utilizzare quella zona.

EDIT, utilizzo di base dello schermo:

  • Nuovo terminale: ctrlaquindi c.
  • Terminale successivo: ctrlaquindi space.
  • Terminale precedente: ctrlaquindi backspace.
  • N ° esimo ctrlaquindi [n]. (funziona per n∈ {0,1… 9})
  • Passa da un terminale all'altro usando l'elenco: ctrlaquindi " (utile quando più di 10 terminali)
  • Invia ctrlaal terminale sottostante ctrlapoi a.

18
Anche Tmux fa questo e molti programmi terminali hanno viste e schede divise.
Shawn J. Goff,

3
@AaronNewton ctrl+aquindi rilascia tutto quindi shift+s(non so per maiuscole, il mio è disabilitato)
shellholic

4
Ctrl A Shift Sdivide lo schermo, quindi Ctrl A Tabpassa all'altra divisione e Ctrl A ccrea un prompt bash. C'è comunque modo che questi comandi vengano eseguiti automaticamente all'avvio in screenmodo da non doverli eseguire continuamente.
Michael Butler,

2
Quale versione dello schermo per la divisione verticale? La versione che ho installato è la 4.00.03, che è la stessa dell'ultimo download disponibile da tutti i mirror che ho controllato.
Brian Vandenberg,

1
Come faccio a rendere una delle mie finestre verticali più ampia dell'altra? Voglio una divisione 30 | 30 | 40.
mpen

108

Prova tmux (Terminal MUltipleXer):

screenshot di tmux

E per capire la differenza tra session, windowe pane: tmuxnestings


20
Screen vs tmux? tmux è probabilmente migliore per un uso avanzato ed è più moderno, ma lo schermo è installato ovunque e funziona perfettamente.
user606723

Altre tmuxrisorse di grande aiuto sono: intro , config , primer e cheat-sheet .
not2qubit

1
@ user606723 tra l'altro la configurazione di Tmux è effettivamente leggibile; non come un cane rotolato sulla tastiera. Naturalmente puoi byobuaccontentarti di un wrapper come (che avvolge entrambi i multiplexer terminali), ma Tmux sembra essere superiore in molti aspetti diversi dalla configurazione. Ed era già superiore diversi anni fa. Lo schermo aveva bisogno di patch per dividere entrambe le direzioni e Tmux lo aveva pronto per l'uso. ultimo ma non meno importante, la licenza può essere un argomento per Tmux o Screen, a seconda di dove ti trovi.
0xC0000022L

1
@ user606723 a partire dal 2019, questo non è più vero. screenmanca da un'installazione relativamente nuova di Fedora 30, mentre tmuxè presente.
Sora.

64

Come menzionato nei commenti, oltre allo schermo, un altro buon multiplexer terminale è tmux . È possibile fare riferimento al manuale per una descrizione completa e un riferimento al comando. Alcune operazioni di base per iniziare sono:

  • Dividi lo schermo in verticale: CtrlbeShift5
  • Dividi schermo in orizzontale: CtrlbeShift"
  • Alterna tra i riquadri: Ctrlbeo
  • Chiudi il riquadro corrente: Ctrlbex

È possibile ottenere layout più complessi suddividendo i riquadri. Puoi anche avere più finestre con riquadri e passare da una all'altra.

  • Crea windows: Ctrlbec
  • Passa alla finestra successiva: Ctrlben
  • Passa alla finestra precedente: Ctrlbep
  • Distruggi la finestra corrente: CtrlbeShift7

3
Nota che puoi cambiare il prefisso di tmux in qualcosa di più facile da raggiungere rispetto a <Cb>.


19

Oltre agli eccellenti suggerimenti su Screen e Tmux se stai usando una sorta di window manager potresti essere interessato a Terminator puoi dividere le mode orizzontalmente o verticalmente, oltre a schede e altro ... ecco un elenco di funzionalità tratte dal sito web dell'autore :

  • Disporre i terminali in una griglia
  • Tabs
  • Trascina e rilascia riordino dei terminali
  • Molte scorciatoie da tastiera
  • Salva più layout e profili tramite l'editor delle preferenze della GUI
  • Digitazione simultanea a gruppi arbitrari di terminali

Dai un'occhiata agli screenshot sul sito del progetto.

Più importante è possibile combinare Terminator con Screen / Tmux.


2
Si noti che l'utilizzo delle suddivisioni di Terminator sarà meno conveniente quando si copypasting tra due finestre dell'editor.
gb.

È possibile modificare più riquadri contemporaneamente dopo aver raggruppato i riquadri (o semplicemente averli selezionati tutti in una volta) e modificare anche i collegamenti per il cambio di riquadro. Devo ctrl-shift-h/j/k/lspostarmi tra i riquadri e ctrl- (shift) -tab per passare da una scheda all'altra, funziona semplicemente alla grande.
sabato

1
bene possiamo fare clic su di essi per concentrarci; ma non riesco ancora a trovare un modo per distribuire uniformemente i terminali nella griglia, è solo un casino da riparare a mano, inoltre ho bisogno di aggiungere dinamicamente terminali, quindi aggiornarli in una griglia uniformemente distribuita, qualche idea?
Aquarius Power il

Terminator è un programma X-windows, non un programma da riga di comando come tmux e screen. L'OP menzionato specificamente same terminaldue volte, quindi Terminator o tilix (come menzionato da @sjas) non sono buoni suggerimenti. Se ci si trova in una sessione ssh su un server remoto senza server X, non sarà nemmeno possibile eseguire questi strumenti.
Haridsv,

8

Konsole per KDE ha una funzione integrata :

  • Ctrl+ (per Dividi vista sinistra / destra

  • Ctrl+ )per dividere Visualizza in alto / in basso

  • Shift+ Tabscorrerà le viste divise

  • Shift+ Left Arrow/ Right Arrowscorrerà la vista corrente attraverso le schede / viste

  • Ctrl+ Shift+ Xper chiudere la vista corrente


Conosci le scorciatoie da tastiera per passare tra i riquadri della vista divisa in konsole?
LangeHaare,

1
@LangeHaare SHIFT + TAB scorrerà i riquadri della vista
chaptuck,

7

Usa terminatore .

Dovrebbe essere disponibile tramite il tuo gestore pacchetti preferito, se usi una distribuzione mainstream.

È l'unico terminale multiplexer in cui il copia-incolla funziona correttamente all'interno dei riquadri della finestra.

Aggiornamento: tilixè terminatorun'alternativa quasi completamente alla pari di Terminator (e dove anche il copypasting funziona correttamente). Dopo averlo valutato rimango comunque a terminatorcausa della migliore gestione delle schede e della configurazione più semplice (dal mio POV).


Terminator non è tecnicamente un multiplexer: "Un multiplexer terminale è un'applicazione software che può essere utilizzata per multiplexare diverse console virtuali, consentendo a un utente di accedere a più sessioni di terminale separate all'interno di una singola finestra di terminale o sessione di terminale remoto". (da Wikipedia)
erb,

Inoltre, non è l'unico multiplexer in cui il copia-incolla funziona correttamente all'interno dei riquadri, tmux lo fa bene con la configurazione corretta.
erb,

@erb - cosa devo configurare esattamente se non desidero selezionare linee complete che si estendono su più terminali con un triplo clic e perché l'impostazione predefinita non è corretta?
sabato

1
Puoi usare la modalità copia in tmux per fare la copia, se vuoi usare il mouse dovresti solo abilitare il supporto del mouse, la mia configurazione è qui: github.com/ErikBjare/dotfiles/blob/master/home/. tmux / ... Se si desidera utilizzare gli Appunti di sistema con la modalità copia, consultare questo: unix.stackexchange.com/questions/131011/…
erb,

2
Eh? Perchè no? Puoi farlo funzionare quasi esattamente (se non esattamente) allo stesso modo della selezione in terminatore. Ero un utente terminatore per lo stesso motivo, una volta terminata la configurazione non ho mai guardato indietro e ora posso risparmiare un po 'di RAM e altre risorse passando a un emulatore di terminale più leggero poiché la copia era l'unica cosa che mi infastidiva.
Erb,

4

Guake + Byobu

Sono un felice utente di Guake con Byobu al suo interno, che per impostazione predefinita utilizza tmux( probabilmente meglio di screen).

Tre passi

  1. Installali (non sono necessari PPA su Ubuntu o Debian, controlla altre distro )

    sudo apt install guake byobu
  2. Aggiungilo alle shell disponibili (come ho detto in questo numero di Guake Github ):

    which byobu | sudo tee -a /etc/shells
  3. Nelle preferenze di Guake ( guake-prefs) scegli Byobu come interprete predefinito: Immagine


  1. Opzionale: Deseleziona "Mostra barra delle schede", poiché utilizzerai Byobu per questo:

    Immagine

  2. Se un collegamento non funziona, prova a disabilitare quelli di Guake che potrebbero interferire (nel mio caso era Ctrl+F2per la divisione verticale): immagine dello schermo

Altri suggerimenti

  1. Scopri le scorciatoie con Shift+ F1o questo eccellente screencast .
  2. Scopri i comandi del terminale byobu disponibili con apropos byobu
  3. Per usare i tasti fn su Midnight Commander usa Alt+ o Shift+ F12per disabilitare i tasti F byobu.

immagine dello schermo


2

Prova la divisione verticale per lo schermo GNU

Questa patch fornisce una funzione di divisione verticale per le versioni correnti di GNU Screen. La funzione è progettata per funzionare allo stesso modo del comando di divisione esistente dello schermo, ma divide le regioni verticalmente anziché orizzontalmente. Entrambe le forme di divisione possono essere utilizzate insieme in qualsiasi combinazione / quantità / ordine desiderato. Qualcosa di simile dovrebbe apparire presto nella schermata 4.1 di GNU ed è già disponibile in CVS per questo thread della mailing list (ed è stato incluso nei pacchetti di schermate Debian e Ubuntu a partire dalla 4.0.3-10). Inoltre, un recente progetto chiamato ScreenWM è progettato specificamente per funzionare con uno schermo con patch vsplit (dai un'occhiata!).


Per essere più precisi, Ctrl+|divide screenin Ubuntu subito.
Jonatan Öström,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.