Come nascondi un riquadro tmux?


60

Ho 3 riquadri nella finestra di tmux:

--------------------------
|             |      2   |
|             |          |
|        1    |----------|
|             |      3   |
|             |          |
--------------------------

I riquadri 1 e 2 hanno vim. Pane 3 esegue un cli che sto sviluppando. A volte voglio confrontare i riquadri 1 e 2, quindi voglio nascondere il riquadro 3:

--------------------------
|             |          |
|             |          |
|        1    |       2  |
|             |          |
|             |          |
--------------------------

e quindi riportare di nuovo il riquadro 3. Non voglio uccidere il riquadro 3 poiché ho impostato alcune cose lì e non voglio andare anche se le ho impostate di nuovo.

  • Esiste qualcosa di simile al PREFIX + zquale è possibile ingrandire il riquadro 2 ma senza toccare il riquadro 1? O
  • C'è un modo per nascondere rapidamente il riquadro 3 e ripristinarlo quando necessario?

Risposte:


71

Utilizzare i comandi break-panee join-pane. Fare riferimento a man tmuxper dettagli, opzioni e utilizzo.


Nascondi riquadro 3:

Seleziona il riquadro 3e inserisci Prefix- :break-pane -dP.

tmuxinvierà il riquadro 3a una finestra in background (il -dflag) e stamperà alcune informazioni al riguardo nel riquadro 2 (il -Pflag). Per impostazione predefinita vedrai qualcosa di simile 1:2.0(significato:) session:window.pane. Premi qper continuare a lavorare. 1

1 Con un po 'di pratica sarai in grado di rilasciare il -Pflag poiché puoi prevedere la session:window.panetripletta: per sessionimpostazione predefinita, la sessione corrente e per paneimpostazione predefinita 0mentre while windowsarà il successivo identificatore della finestra libera.

Ripristina il riquadro 3:

Per 3ripristinare il riquadro e il layout, selezionare il riquadro 2e il problema Prefix, :join-pane -vs 1:2.0indicando tmuxdi dividere il riquadro 2verticalmente ( -v) e di unire il riquadro (sorgente) ( -s) con l'identificatore 1:2.0. Facoltativamente, è possibile eliminare sessionl' paneidentificatore o . Si noti inoltre che tmux memorizza una cronologia della riga di comando, facilmente accessibile con Prefix- :- Up.

Probabilmente avrai bisogno di un po 'di tempo per capire, ma una volta fatto, sarai sicuramente in grado di inventare combinazioni di tasti personalizzate che sono convenienti per te.


Questa domanda contiene alcune informazioni utili e trucchi che potrebbero migliorare il tuo flusso di lavoro.


Istruzioni chiare! Funziona senza problemi per me, molto meglio della mia risposta!
Bernhard,

Per impostazione predefinita, il riquadro 3 verrà suddiviso nell'ultima finestra, se nella finestra corrente sono già presenti 3 finestre, il riquadro diventerà Finestra 3 (supponiamo che la finestra inizi da 0), quindi il 3 in "Finestra 3" dipende dal le finestre aperte, come posso farlo funzionare in combinazioni di tasti personalizzate?
CodyChan,

5

Un'idea: esegui tmux in tmux.

Installazione originale:

Riquadro 1 e riquadro 2; fianco a fianco. Esegui vim nel riquadro 1 come di consueto.

Nel riquadro 2, eseguire di nuovo tmux e creare due riquadri (uno sopra l'altro questa volta). Quindi eseguire vim nel riquadro 2.1 e l'interfaccia della riga di comando nel riquadro 2.2. Ciò dovrebbe consentire di visualizzare il riquadro 2.1 a schermo intero con la seconda istanza di Vim che determina il comportamento desiderato.


questo è ciò che chiamo fuori dagli schemi pensando!
user881300,

Grazie utente881300. Ha alcuni difetti (essere in grado di inviare comandi ha alcune stranezze per es.). Spero di aggiornarlo in una risposta più completa dopo averlo provato: ho bisogno di funzionalità simili.
BinaryBen il

2
@ user881300 Tecnicamente, questa è la scatola nella scatola pensando.
Mateen Ulhaq,

3

Invece di nascondere il riquadro 3, potresti anche imbrogliare un po 'e renderlo molto piccolo, il che probabilmente funzionerà anche per il tuo caso.

Quando il riquadro 2 è il riquadro attivo, è possibile

PREFIX : resize-pane -D 40

Quindi, per spostarlo di nuovo in alto, puoi farlo

PREFIX : resize-pane -D 28

dove dovresti sostituire 28 con un numero decente o, invece, potresti provare PREFIXEsc4, il che fa il ridimensionamento automatico.


Stavo ridimensionando il riquadro usando set -g mouse-resize-pane onma a parte il ridimensionamento abbiamo altre opzioni?
user881300

@ user881300 Non sono affatto un tmuxesperto, ma sarei curioso di sapere se questo è possibile.
Bernhard,

1
CTRL+B, ALT+<arrow direction to resize>, di CTRL+B, ESC, 4(thx @Bernhard) per ripristinarlo.
FelikZ,

1

Ora questa domanda ha quasi 5 anni ma l'ho appena trovata perché volevo fare qualcosa di simile e ho trovato le seguenti combinazioni di tasti grazie alla risposta di user78291 :

bind-key ! break-pane -d -n _hidden_pane
bind-key @ join-pane -s $.1

In questo modo, posso usare Prefix!per nascondere il riquadro corrente e Prefix@per riportarlo indietro. La parte bella è che posso nascondere più riquadri in questo modo.

È tutt'altro che perfetto, ma fa il compito di nascondere i riquadri e riportarli abbastanza bene.


0

So che questo in realtà non nasconde il riquadro su cui stai lavorando, ma stavo cercando di farlo per impedire a tmux di inviare comandi comuni alle finestre selezionate e sono arrivato a una soluzione molto più semplice.

Se non si desidera nascondere visivamente il riquadro, ma si desidera semplicemente interrompere qualsiasi input diretto al riquadro. Uno scenario potrebbe essere che si desidera inviare un comando a 5 riquadri aperti ma non si desidera inviarlo a 2 di essi.

In questo caso d'uso è possibile eseguire ctrl + ssui riquadri in cui non si desidera che i comandi vadano ( ctrl + sblocca tutti gli input nel riquadro).

Al termine, premere ctrl + cper tornare indietro.

Nota : non premere ctrl + qdopo i comandi poiché eseguirà tutti i comandi su quella schermata. ctrl + cnon lo farà (provato su Ubuntu).

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.