Tmux : Installation et premières étapes. Ma configuration personnelle, Partie 1
Quand tu commences à travailler dans le développement de logiciels, il est courant de te concentrer sur l’apprentissage d’une nouvelle pile technologique. Cependant, peu de gens utilisent leurs compétences avec les outils.
L’un de ces outils qui m’aide chaque jour lorsque je travaille avec plusieurs répertoires et projets est Tmux.
Tmux est un multiplexeur de terminaux, ce qui signifie que tu peux avoir différentes sessions dans la même fenêtre. Dans Tmux, tu peux créer plusieurs panneaux dans la même fenêtre de terminal, chacun exécutant sa propre application ou processus. Cela facilite le travail sur plusieurs tâches en même temps sans avoir à changer d’onglets ou de fenêtres dans ton terminal. Tmux prend en charge les fenêtres et les sessions, te permettant de les déplacer et de les redimensionner, de créer de nouvelles fenêtres, d’y accéder et d’en sortir.
📦 Installer Tmux
macOS
Dans Mac, c’est facile d’installer Tmux. Tu auras besoin de Brew, et après, tu pourras l’installer.
Linux y WSL
Selon la distribution de ta préférence, la façon d’installer Tmux sera différente. Voici quelques commandes pour les distros que j’ai utilisées ces dernières années.
Ces commandes sont les mêmes pour ta distribution de Linux favorite et WSL, tant qu’elles appartiennent à la même version que le système d’exploitation.
👟 Des sessions, des fenêtres et des panneaux
Imagine que je veux travailler sur deux projets : Le projet Pomme de terre et le projet Tournesol.
On peut profiter des sessions pour en créer deux.
Pour chaque projet, on doit travailler sur le backend et le frontend. On peut utiliser une fenêtre pour chacun d’eux. Dans chaque fenêtre, il faut deux panneaux côte à côte pour exécuter npm run start
et npm test
en même temps.
Avant de commencer, le raccourci <Préfixe>
La clé préfixe est le raccourci principal pour Tmux. Par défaut, la combinaison des touches est Ctrl + b
ou ^ + b
sur Mac.
Pour le prochain tutoriel, utilise ce raccourci. Ou, si tu l’as déjà modifié, utilise le nouveau.
Les sessions
On veut travailler sur la configuration dans ce poste, mais en lire les commandes, on peut le imaginer comment ça fonctionne. J’utilise des nommes de session petits parce que si je veux m’attacher à quelqun après, c’est plus facile de l’écrire comme ça.
Maintenant, notre serveur Tmux a deux sessions en cours d’exécution. L’option -d
est utilisée pour éviter d’être attaché à la session, donc on peut continuer à manipuler le terminal. Supprime-la si tu veux rejoindre la session.
Les fenêtres
Quand on est connecté à notre session, on rejoint la première fenêtre en même temps. Le titre de cette fenêtre est régulièrement le nom du shell que tu utilises. Dans ce cas, c’est zsh
, mais dans ton cas, ça peut être bash
ou autre.
Alors, rappelle-toi que nous sommes dans le projet tournesol
. Nous devons créer une fenêtre pour le backend et d’autres pour le frontend.
Un raccourci pour se souvenir des fenêtres est de les comparer aux onglets du navigateur.
Renommer les fenêtres
Ensuite, tape le nouveau nom de la fenêtre : backend et <Enter>
Créer une nouvelle fenêtre
Se déplacer entre les fenêtres
Maintenant, si tu veux de déplacer entre la fenêtre backend et frontend, tu peux utiliser.
Les panneaux
Un panneau est une division d’une fenêtre. Je pourrais dire que c’est la raison principal d’utiliser Tmux, comment un développeur NodeJS.
Maintenant, nous voulons créer deux panneaux pour exécuter npm start
dans l’un et npm test
dans l’autre. Tu peux créer un panneau horizontal pour cela.
Mais si tu préfères une disposition verticale, utilise cette commande.
Se déplacer entre les panneaux
Pour te déplacer entre les panneaux que nous avons créés, tu peux utiliser la clé <Préfixe>
combinée avec les touches des flèches. Cela donne un total de quatre combinaisons : Haut, Gauche, Droite et Bas.
📦 Ma configuration personnelle
Après un an d’utilisation de Tmux, j’ai essayé de trouver différentes façons d’améliorer ma productivité au travail. J’ai découvert quelques améliorations dont tu peux profiter.
Chacune de ces améliorations nécessite de créer un fichier nommé .tmux.conf
dans ton répertoire racine. Cela s’applique à tous les systèmes d’exploitation, y compris Windows, mais si tu utilises WSL, c’est là que ça se passe.
Changer le préfixe
Je sais que pour presser Ctrl + b
(ou l’équivalent sur Mac), ça peut être difficile, et les deux touches sont éloignées l’une de l’autre. Je l’ai remplacé par Ctrl + Espace
car je peux appuyer sur les deux touches avec mon premier et dernier doigt de ma main gauche.
Pour effectuer ce changement, mets à jour ton fichier ~/.tmux.conf
avec le contenu suivant. Nous allons désactiver Ctrl + b
avant d’utiliser le nouveau préfixe.
Une manière simple de recharger la configuration
Puisque on va apporter des modifications à ce fichier, on a besoin d’un moyen rapide de recharger la configuration. On va d’abord montrer la méthode originale, puis ce que j’ai.
La méthode originale
Tu peux utiliser <Préfixe> + :
pour ouvrir le mode commande dans Tmux et écrire:
Mon raccourci personnel
Dans ton fichier ~/.tmux.conf
, ajoute la ligne suivante. Ensuite, si tu es déjà dans ta session Tmux, utilise la méthode originale pour recharger la configuration. Seulement une fois.
Mettre à jour l’index de zéro à un
Peut-être que tu le sais, peut-être que non, mais il y a cette blague sur les développeurs qui utilisent 0
plutôt que 1
pour commencer à compter. Cependant, quand tu utilises Tmux, si tu veux te déplacer directement vers la première fenêtre, tu dois croiser les doigts sur ton clavier pour exécuter le raccourci. Heureusement, tu peux utiliser le numéro 1
comme index. De plus, si tu supprimes une fenêtre, par défaut Tmux laissera le numéro de fenêtre vide. Tu peux également le changer, ce que je recommande de faire.
Renuméroter une fenêtre si elle est supprimée
Mettre l’index de base des fenêtres à 1, et pour les panneaux aussi
Configuration pour un shell (l’interface système) différente
J’ai utilisé Zsh au lieu de Bash. Tu peux initialiser tes sessions de Tmux sur Zsh en faisant référence au répertoire du shell.
Tu peux exécuter which zsh
avant pour connaître le répertoire de ton shell et le remplacer dans Tmux avec le script suivant. Pour moi, c’est /bin/zsh
.
Naviguer entre les panneaux comme Vim
Et ceci est une autre étape additionnelle. Comme on l’a dit, tu peux te déplacer entre les panneaux en utilisant <Préfixe> + <Flèche>
. Mais, si tu préfères avoir un raccourci de déplacement similaire à Vim, utilise <Préfixe> + <h | j | k | l>
comme raccourcis de déplacement.
Comme tu peux le voir, en utilisant <Préfixe>
après la première fois, on n’a pas besoin d’ajouter l’option -r
, ce qui évite d’y appuyer.
Redimensionner les panneaux depuis le clavier
De plus, si tu ne voulais pas utiliser le souris pour redimensionner les panneaux, utilise la version majuscule des mêmes lettres que tu utilises pour te déplacer en Vim. Aussi, utiliser l’option -r
nous permet d’éviter l’usage du préfixe pour une durée limitée.
Le numéro 5, dans l’exemple suivant, représente la mesure de ce que tu redimensionnes. Tu peux l’augmenter et le diminuer selon tes besoins.
Mes raccourcis personnels
Ajouter le support de true colors pour tes sessions Tmux.
Pour que ta session Tmux fonctionne avec les thèmes et les couleurs modernes que tu as probablement vus sur Reddit, il faut la modifier. Voici les instructions pour ajouter true colors à Tmux.
Utiliser la souris
Si tu veux utiliser la souris pour redimensionner tes panneaux ou faire un clic sur le nom d’une fenêtre, fais-le avec la ligne suivante.
Appliquer le format à la barre de statut
Pour afficher la barre de statut et le numéro de fenêtre avec la commande exécutée, utilise le code suivant.
Le mode Vi
Pour utiliser des raccourcis similaires à Vim pour copier et coller, active le mode Vi.
Ouvrir un panneau dans le même répertoire que le panneau source
Pour ouvrir une division verticale ou horizontale dans le même répertoire où tu travailles, j’ai deux raccourcis personnels pour le faire. J’utilise la clé |
pour créer un panneau vertical et -
pour un horizontal. Aussi, je pense que c’est une meilleure combinaison que %
et "
.
🛠️ Installer TPM et des plugins
Installer TPM
TPM est le Tmux Plugin Manager. Tout comme ton langage de programmation préféré, tu peux l’utiliser pour ajouter ou étendre les fonctionnalités de Tmux.
Pour l’installer, copie les lignes de code suivantes à la fin de ton ~/.tmux.conf
. Assure-toi de rafraîchir la configuration ensuite.
Quelques plugins utiles
Dans certains cas, tu voudras étendre les fonctionnalités de Tmux. Voici ma liste préférée de plugins qui t’aideront avec cela.
Tmux sensible
Il fournit des raccourcis et des améliorations à la configuration qui vient par défaut. Selon moi, c’est la meilleure option comparée à celle par défaut.
Jetez un œil au dépôt original : https://github.com/tmux-plugins/tmux-sensible
Tmux resurrect
Pour gérer un espace de travail avec plusieurs fenêtres et panneaux que tu ne veux pas perdre lorsque tu redémarres ton ordinateur, Tmux a ce plugin qui permet de stocker l’organisation de tes sessions et de la restaurer ensuite avec des combinaisons sur le clavier.
Les raccourcis les plus importants pour se souvenir de ce plugin sont : Sauvegarder la session <Préfixe> + Ctrl + s
et pour la restaurer <Préfixe> + Ctrl + r
.
Plus d’information https://github.com/tmux-plugins/tmux-resurrect
Tmux yank
Il est possible d’utiliser Tmux avec la fonctionnalité de partage du presse-papiers dans le système d’exploitation. Fais attention, car tu pourrais avoir besoin de bibliothèques supplémentaires selon ton système. Ensuite, utilise <Préfixe> + y
pour copier le contenu sélectionné dans le terminal et le coller où tu le souhaites.
Tu peux lire plus d’informations ici : https://github.com/tmux-plugins/tmux-yank
Vim Tmux Navigator
Si tu es un utilisateur de Vim, comme moi, tu voudras un flux simple pour te déplacer entre tes panneaux et divisions de Vim. Par défaut, ça ne va pas fonctionner comme tu veux. Heureusement, on a ce plugin qui doit être installé dans Vim et Tmux, et les deux se complémenteront parfaitement. Ça fonctionne aussi avec Nvim.
Tu peux suivre les instructions ici : https://github.com/christoomey/vim-tmux-navigator
Tous les plugins dans un même bloc de code
Voici la liste de tous les plugins, place-les après la ligne set -g @plugin 'tmux-plugins/tpm
. Sauvegarde-le, recharge ta configuration, et ensuite appuie sur <Préfixe> + I
pour les installer. Si tu veux les mettre à jour plus tard, utilise <Préfixe> + U
.
Installer des thèmes
Comme autres outils de développement, tu peux modifier l’interface de Tmux avec des thèmes. Je vais montrer mon thème préféré. De plus, je vais laisser un lien à la fin de cet article où tu peux accéder à un grand nombre de thèmes.
Thème de Dracula
C’est un thème agréable à l’œil qui se complète dans les terminales claires et noires. Je l’ai testé dans les deux. La combinaison de gris noir avec du vert, du rose et de l’orange, fait contraster les sections où je vois mes ressources du système. Je l’ai également configuré pour afficher la charge de travail de mon CPU, GPU et de RAM. Il vient aussi avec le support pour Nerdfont, ce que j’utilise dans mon terminal.
Pour installer ce thème, suis les mêmes instructions que celles-ci:
À propos de ma configuration personnalisée, voici comment j’ai configuré le thème de Dracula pour m’accommoder à mes besoins personnels. Copie et colle après la ligne où tu installes le plugin. Si tu veux des carrés au lieu des icônes, tu peux également les copier.
Plus de thèmes
Tu peux trouver plus de thèmes dans ce dépôt de Tmux