Comment diviser le terminal en plusieurs "vues"?

264

À partir de vi, si vous exécutez la commande :sp, l'écran se divise en deux "vues", vous permettant d'éditer plusieurs fichiers du même terminal.

Dans le même ordre d'idées, existe-t-il un moyen d'ouvrir plusieurs coques dans le même terminal?

Justin Ethier
la source

Réponses:

351

Vous pouvez le faire dans screenle multiplexeur de terminaux.

  • Pour séparer verticalement: ctrlaalors |.
  • Pour séparer horizontalement: ctrlapuis S(majuscules).
  • Pour séparer: ctrlaalors Q(majuscule 'q').
  • Pour passer de l’un à l’autre: ctrlapuistab

Remarque: Après le fractionnement, vous devez aller dans la nouvelle région et commencer une nouvelle session via ctrlaalors cavant de pouvoir utiliser cette zone.

EDIT, utilisation de base de l’écran:

  • Nouveau terminal: ctrlaalors c.
  • Prochain terminal: ctrlaalors space.
  • Terminal précédent: ctrlaalors backspace.
  • Nth terminal ctrlaalors [n]. (fonctionne pour n∈ {0,1… 9})
  • Basculer entre les terminaux en utilisant list: ctrlathen " (utile quand plus de 10 terminaux)
  • Envoyer ctrlaà la borne sous - jacente ctrlaalors a.
shellholic
la source
18
Tmux le fait également, et de nombreux programmes terminaux ont des vues et des onglets divisés.
Shawn J. Goff
3
@AaronNewton relâche ctrl+aensuite tout shift+s(je ne sais pas pour le verrouillage de la majuscule, le mien est désactivé)
shellholic
4
Ctrl A Shift Sdivise l'écran, puis Ctrl A Tabpasse à l'autre division et Ctrl A ccrée une invite bash. Existe-t-il de toute façon une exécution automatique de ces commandes au démarrage, de screensorte que nous n’ayons pas à les exécuter tout le temps?
Michael Butler le
2
Quelle version de l'écran pour la division verticale? La version que j'ai installée est 4.00.03, ce qui est identique au dernier téléchargement disponible à partir de tous les miroirs que j'ai vérifiés.
Brian Vandenberg
1
Comment rendre l'une de mes fenêtres verticales plus large que l'autre? Je veux un split de 30 | 30 | 40.
MPfr
108

Essayez tmux (Terminal MUltipleXer):

capture d'écran tmux

Et pour comprendre la différence entre session, windowet pane: tmuxnestings

Yonatan Maman
la source
20
Écran vs tmux? tmux est probablement meilleur pour une utilisation avancée et est plus moderne, mais l’écran est installé partout et fonctionne parfaitement.
user606723
Parmi les autres excellentes tmuxressources d’aide, citons: intro , config , amorce et aide -mémoire .
not2qubit
1
@ user606723 entre autres choses, la configuration de Tmux est réellement lisible; pas comme un chien roulé sur le clavier. Bien sûr, vous pouvez vous contenter d'un wrapper du type byobu(qui enveloppe les deux multiplexeurs de terminaux), mais Tmux semble être supérieur à plusieurs égards, en dehors de la configuration. Et était déjà supérieure il y a plusieurs années. Screen avait besoin de correctifs pour séparer les deux directions et Tmux l’avait sorti de la boîte. Enfin, la licence peut être un argument pour Tmux ou Screen, selon votre position.
0xC0000022L
1
@ user606723 à partir de 2019, ce n'est plus vrai. screenmanque dans une installation relativement récente de Fedora 30, alors qu’il tmuxest présent.
Sora.
64

Comme mentionné dans les commentaires, outre l'écran, un autre bon multiplexeur de terminaux est tmux . Vous pouvez vous reporter au manuel pour une description complète et une référence de commande. Certaines opérations de base pour commencer sont:

  • Fractionner l'écran verticalement: CtrlbetShift5
  • Fractionner l'écran horizontalement: CtrlbetShift"
  • Basculer entre les volets: Ctrlbeto
  • Fermer le volet actuel: Ctrlbetx

Vous pouvez réaliser des mises en page plus complexes en scindant des volets. Vous pouvez également avoir plusieurs fenêtres avec des volets et basculer entre eux.

  • Créer des fenêtres: Ctrlbetc
  • Passer à la fenêtre suivante: Ctrlbetn
  • Passer à la fenêtre précédente: Ctrlbetp
  • Détruire la fenêtre actuelle: CtrlbetShift7
dkaragasidis
la source
3
Notez que vous pouvez changer le préfixe de tmux en quelque chose de plus facile à atteindre que <Cb>.
21

Si vous voulez un programme qui divise simplement un terminal¹, il y a splitvt . Il existe des programmes qui divisent un terminal et font beaucoup d'autres choses, telles que Screen, Tmux, Emacs,…

¹ C'est le terminal que vous divisez, pas le shell.

Gilles
la source
+1, bon point sur la façon dont le terminal est ce qui est réellement divisé.
Justin Ethier le
19

Outre les excellentes suggestions sur Screen et Tmux, si vous utilisez une sorte de gestionnaire de fenêtres, vous pouvez être intéressé par Terminator, vous pouvez séparer des modes horizontalement ou verticalement, des onglets et bien plus encore ... voici une liste des fonctionnalités extraites du site Web de l'auteur :

  • Organiser les terminaux dans une grille
  • Onglets
  • Glisser-déposer la réorganisation des terminaux
  • Beaucoup de raccourcis clavier
  • Enregistrez plusieurs mises en page et profils via l'éditeur de préférences de l'interface graphique
  • Dactylographie simultanée sur des groupes de terminaux arbitraires

Regardez les captures d'écran sur le site du projet.

Le plus important est de pouvoir combiner Terminator avec Screen / Tmux.

alemani
la source
2
Notez que l’utilisation des fractionnements Terminator sera moins pratique lors d’une copie groupée entre deux fenêtres de votre éditeur.
gb.
Vous pouvez éditer plusieurs volets en même temps après avoir regroupé les volets (ou tout simplement en les sélectionnant tous en même temps). Vous pouvez également éditer les raccourcis pour basculer entre les volets. J'ai ctrl-shift-h/j/k/lpour me déplacer entre les volets, et ctrl- (shift) -tab pour basculer entre les onglets, ça fonctionne génial.
Sjas
1
bon on peut cliquer dessus pour se concentrer; mais je ne peux toujours pas trouver un moyen de répartir uniformément les terminaux dans la grille, c’est juste un gâchis à réparer à la main, j’ai également besoin d’ajouter dynamiquement des terminaux, donc de les mettre à jour dans un réseau uniformément réparti, une idée?
Aquarius Power
Terminator est un programme X-Windows, pas un programme en ligne de commande comme tmux et screen are. Le PO mentionné spécifiquement same terminaldeux fois, donc Terminator ou tilix (comme mentionné par @sjas) ne sont pas de bonnes suggestions. Si vous êtes dans une session ssh sur un serveur distant sans serveur X, vous ne pourrez même pas exécuter ces outils.
haridsv
8

Konsole pour KDE a une fonction intégrée :

  • Ctrl+ (à Split View Left / Right

  • Ctrl+ )à fractionner voir haut / bas

  • Shift+ Tabfera défiler les vues divisées

  • Shift+ Left Arrow/ Right Arrowfera défiler la vue actuelle à travers les onglets / vues

  • Ctrl+ Shift+ Xpour fermer la vue actuelle

MrUser
la source
Connaissez-vous les raccourcis clavier permettant de basculer entre les volets de vue fractionnés dans konsole?
LangeHaare
1
@LangeHaare SHIFT + TAB fera défiler les panneaux d'affichage
chaptuck
7

Utilisez le terminateur .

Devrait être disponible via votre gestionnaire de paquets préféré, si vous utilisez une distribution traditionnelle.

C'est le seul multiplexeur de terminal où le copier-coller fonctionne correctement à partir des volets de votre fenêtre.

Mise à jour: tilixest une terminatoralternative qui est presque complètement à égalité avec le terminateur (et où le copypast fonctionne correctement, aussi). Après l'avoir évalué, je m'en tiens toujours à terminatorcause de la manipulation plus agréable des onglets et de la configuration plus facile (à partir de mon POV).

sjas
la source
Techniquement, Terminator n’est pas un multiplexeur: "Un multiplexeur de terminal est une application logicielle qui peut être utilisée pour multiplexer plusieurs consoles virtuelles, permettant à un utilisateur d’accéder à plusieurs sessions de terminal distinctes dans une seule fenêtre de terminal ou une session de terminal distant." (de Wikipedia)
erb
Ce n’est également pas le seul multiplexeur où le copier-coller fonctionne correctement à partir de volets, tmux le fait très bien avec la configuration appropriée.
erb
@erb - que faut-il configurer exactement si je ne veux pas sélectionner de lignes complètes couvrant plusieurs terminaux lors d'un triple-clic et pourquoi le réglage par défaut n'est-il pas sain?
Sjas
1
Vous pouvez utiliser le mode copie dans tmux pour effectuer la copie. Si vous souhaitez utiliser la souris, vous devez uniquement activer le support de souris, ma configuration avec cela est la suivante: github.com/ErikBjare/dotfiles/blob/master/home/. tmux /… Si vous voulez utiliser le presse-papiers du système avec le mode copie, consultez ceci: unix.stackexchange.com/questions/131011/…
erb
2
Hein? Pourquoi pas? Vous pouvez le faire fonctionner presque exactement (sinon exactement) de la même manière que si vous sélectionniez un terminateur. J'avais l'habitude d'être un utilisateur de terminateur pour la même raison, une fois la configuration terminée, je ne pouvais plus revenir en arrière et je peux maintenant économiser pas mal de RAM et d'autres ressources en passant à un émulateur de terminal plus léger, car la copie était la seule chose qui m'ennuyait.
erb
4

Guake + Byobu

Je suis un utilisateur heureux de Guake avec Byobu à l’ intérieur, qui est utilisé par défaut tmux( probablement meilleur que screen).

Trois étapes

  1. Installez-les (aucun PPA requis sous Ubuntu ni Debian, recherchez d'autres distributions )

    sudo apt install guake byobu
  2. Ajoutez-le aux coquilles disponibles (comme je l'ai dit dans ce numéro de Guake Github ):

    which byobu | sudo tee -a /etc/shells
  3. Sur les préférences de Guake ( guake-prefs), choisissez Byobu comme interprète par défaut: image


  1. Facultatif: Décochez "Afficher la barre d'onglets", car vous utiliserez Byobu pour cela:

    image

  2. Si un raccourci ne fonctionne pas, essayez de désactiver Guake qui pourrait interférer (dans mon cas, c'était Ctrl+F2pour le fractionnement vertical): capture d'écran

Autres suggestions

  1. Apprenez des raccourcis avec Shift+ F1ou cet excellent screencast .
  2. Apprenez les commandes de terminal byobu disponibles avec apropos byobu
  3. Pour utiliser les touches fn sur Midnight Commander, utilisez Alt+ ou Shift+ F12pour désactiver les touches F inobu.

capture d'écran

Pablo A
la source
2

Essayez le fractionnement vertical pour l'écran GNU

Ce correctif fournit une fonctionnalité de fractionnement vertical pour les versions actuelles de GNU Screen. La fonctionnalité est conçue pour fonctionner de la même manière que la commande de fractionnement existante de l'écran, mais en divisant les régions verticalement et non horizontalement. Les deux formes de scission peuvent être utilisées ensemble dans n'importe quelle combinaison / quantité / ordre souhaité. Quelque chose de similaire devrait bientôt apparaître dans GNU Screen 4.1, et est déjà disponible dans CVS par ce fil de liste de diffusion (et a été inclus dans les paquets d’écrans Debian et Ubuntu à partir de 4.0.3-10). En outre, un projet récent appelé ScreenWM est spécialement conçu pour fonctionner avec un écran patché par vsplit (à vérifier!).

Narga
la source
Pour être plus précis, Ctrl+|scinde screenimmédiatement Ubuntu.
Jonatan Öström