[LINUX] (Peut-être) Vous n'avez pas encore exploité la vraie puissance de tmux

table des matières

Qu'est-ce que tmux

tmux est appelé un multiplexeur de terminal, et il est plus facile lorsque vous vous connectez à une machine de travail avec ssh et que vous l'utilisez, ou lorsque vous voulez rentrer chez vous en exécutant un programme lourd mais que vous voulez continuer à travailler sans terminer. Ceci est un cas d'utilisation.

Non seulement cela, tmux peut décorer le terminal de manière complexe, et il existe diverses utilisations pratiques, je vais donc vous présenter l'utilisation réelle en utilisant un enregistrement d'animation gif.

De plus, comme vim, il existe un concept de mode, et il existe une liaison de clé réservée appelée préfixe, et vous pouvez changer de mode en entrant ceci. La valeur par défaut est «ctrl + b».

Lancer et créer une nouvelle session

Pour Debian et Ubuntu, vous pouvez l'installer avec sudo apt-get install tmux. Pour MacOSX, il s'agit de «brew install tmux».

Si vous venez de le démarrer, c'est OK sans argument.

$ tmux

Lorsque vous nommez une session, démarrez-la avec les options suivantes.

$ tmux new -s {Nouveau nom de session}

新規セッションの作成.gif

Créer une nouvelle fenêtre

Vous pouvez créer une nouvelle fenêtre en tapant «ctrl + b» + «c» pendant que vous êtes dans une session tmux. La notation remplacée par le préfixe est «préfixe + c». Peut-être que le sens de ce c est créer.

新規windowの作成.gif

Aller et venir entre les fenêtres

Vous pouvez vous déplacer librement entre les fenêtres créées. Par défaut, prefix + p est utilisé pour aller à la fenêtre précédente (p est précédent), et prefix + n est utilisé pour aller à la fenêtre suivante (n est le suivant). ..

Étant donné que le préfixe coûte cher à appuyer, j'ai personnalisé les raccourcis clavier afin qu'il soit activé sans appuyer sur le préfixe, et shift + rightKey est attribué à la fenêtre suivante, et shift + leftKey est affecté à la fenêtre précédente. ..

別のwindowへ切り替え.gif

Fractionner la fenêtre pour créer un volet

Puisque les fenêtres peuvent être divisées comme vim split et qu'elles ne se rapprochent pas du monde de l'éditeur de texte comme vim, utilisation d'un terminal large tel que l'ouverture de vim d'une part, l'ouverture de htop d'autre part et l'exécution d'un programme d'autre part Tu peux faire.

Sans paramètres de liaison de touches, il peut être divisé en prefix +" split-window -h ", prefix +" split-window -v ", etc.

Ceci est également difficile à saisir, donc je le lie au clavier à prefix +" - ", prefix +" | " pour le rendre plus facile à utiliser.

windowをpaneに分割.gif

Aller et venir entre les volets

Par défaut, déplacer un volet est un clavier complexe avec une commande de préfixe entre les deux, mais il peut également être défini sans préfixe.

J'ai assigné ctrl + shift + upKey, ctrl + shift + downKey, ctrl + shift + rightKey, ctrl + shift + leftKey pour déplacer les volets sans passer par le préfixe Il est possible de se déplacer entre les volets. paneの切り替え.gif

Aller et venir entre les sessions

Une liaison de touches qui affiche une liste de sélection de sessions est affectée à ctrl + t, et lorsque vous appuyez sur cette touche, vous pouvez voir la liste des sessions comme indiqué dans la figure ci-dessous.

Vous pouvez sélectionner avec les touches haut et bas, et vous pouvez vous déplacer vers cette touche en sélectionnant.

別のセッションへ切り替え.gif

[Application] Redirige le contenu d'affichage de tmux

tmux est un terminal virtuel comme / dev / pts / {fooBar}, et ce périphérique virtuel est créé pour chaque volet. En d'autres termes, si «{fooBar}» peut être identifié, le contenu d'un certain volet X peut être divisé en stderr, stdout, etc. et affiché dans le volet Y et le volet Z, respectivement.

Si vous souhaitez vérifier le journal du programme créé séparément de stderr et stdout, ou si vous pouvez lire et écrire sur le terminal virtuel, vous pouvez laisser une trace telle que le journal des opérations.

[Application] Afficher le nom de la branche de git dans la barre de tmux

C'est un hack qui utilise la possibilité de lire des scripts shell et des scripts python à partir du fichier de configuration tmux .tmux.conf.

Les notifications sur la barre d'état peuvent être définies avec la syntaxe suivante.

set-option -g status-right '#{host} #(tmux run-shell "tmux_hook --default true --git-path #{pane_current_path}")'  

# {host} est le nom d'hôte tel qu'il est, mais tmux run-shell exécute n'importe quel script et donne sa valeur de retour aux paramètres de la barre d'état. Le nom de fichier tmux_hook est un script que j'ai créé qui renvoie l'heure et le nom de la branche git, mais comme il peut renvoyer des informations textuelles, par exemple, il peut être affiché sur ma chronologie Twitter en fonction de la façon dont le script est construit. Est possible.

Screenshot_20200719_194105.png

[Application] Afficher le chemin d’opération actuel

Le répertoire dans lequel vous vous trouvez et le chemin dans lequel vous vous trouvez est quelque chose que vous voulez vérifier lorsque vous bricolez le terminal. Puisque je ne veux pas taper la commande pwd à chaque fois, il est possible d'afficher des informations à l'emplacement de la bordure de division du volet.

setw -g pane-border-format '#{pane_tty} | #{pane_current_path}'

Screenshot_20200719_203450.png (Le côté droit est le chemin que vous utilisez actuellement)

[Application] Appeler un extrait

Même s'il s'agit d'un gestionnaire de session avec une fonction pour diviser le terminal appelé tmux, il peut faire quelque chose comme un IDE (super). Vous pouvez définir send-keys dans tmux, et vous pouvez entrer des caractères réservés dans le terminal en entrant une combinaison de touches spécifique.

Par exemple, si vous avez les paramètres suivants, vous pouvez faire quelque chose comme la configuration de python simplement en appuyant sur prefix + 1, et si vous appliquez cela, il sera disponible pour les professionnels de la compétition.

bind -T prefix -n 1 send-keys "import os\nimport sys\n"

スニペットを登録する.gif

Cliquez ici pour .tmux.conf avec les paramètres ci-dessus

tmux est assez subtile dans la compatibilité des versions

Il y a pas mal de cas où je l'ai paramétré en regardant la littérature sur le net, mais ça ne marche pas, dans ce cas, mon tmux est peut-être trop récent ou trop ancien. Cette fois, je m'attendais à ce que tmux 2.8 ou supérieur écrive la configuration, mais si cela ne fonctionne pas, veuillez vérifier votre propre environnement. Pour vous déboguer vous-même, si votre écriture actuelle change, vous devriez lire man tmux car c'est le document le plus solide à ce jour.

J'ai aussi posté sur YouTube

C'est vraiment embarrassant, mais je le fais pour pratiquer la conversation et étudier les méthodes d'expression. Si vous souhaitez voir l'utilisabilité de tmux au format vidéo, veuillez vous référer à l'URL suivante. Nous vous serions reconnaissants si vous pouviez vous abonner à la chaîne.

Recommended Posts

(Peut-être) Vous n'avez pas encore exploité la vraie puissance de tmux
Le pouvoir des pandas: Python
La puissance des solveurs d'optimisation combinée