Comment changer le nouveau répertoire par défaut depuis tmux

43

Je suis récemment passé de l' écran GNU à tmux .
Je le trouve assez similaire mais avec un support plus important (j'ai changé en raison d'un problème de temps d'échappement dans neovim - la résolution ne concernait que tmux).

Malheureusement, dans tmux, je ne parviens pas à trouver une commande similaire à celle-ci:

screen -X eval "chdir $(some_dir)"

La commande ci-dessus a changé le répertoire par défaut pour la nouvelle fenêtre / écran / volet à partir de l'écran GNU. Ainsi, lorsque j'ai appuyé sur Ctrl+ a(semblable à tmux Ctrl+ b), une nouvelle fenêtre s'est ouverte dans le $(some_dir)répertoire.

Y at-il une chose similaire dans tmux?

REPONSE:
J'ai utilisé @Lqueryvg answer et je l'ai combiné avec la suggestion de @Vincent Nivoliers à partir d'un commentaire, ce qui m'a donné une nouvelle liaison pour une commande attach -c "#{pane_current_path}"qui définit mon répertoire actuel comme répertoire par défaut.
Merci.

Lewisian
la source
Vous pouvez utiliser la deuxième réponse de cette question
Vincent Nivoliers
Merci, c'est utile. new-window -c "#{pane_current_path}"fonctionne mais ce que j’ai besoin, c’est d’établir le chemin de façon permanente, c’est-à-dire: je travaille dans un projet dans / aaa / bbb mais j’ai quand même changé de chemin pour dire / ccc / ddd et recommencer à zéro avec Cb et c que je veux. atterrir une fois de plus dans / aaa / bbb. Pouvez-vous penser à une solution à cela?
lewiatan
Personnellement, je vais bien avec l’ajout des trois dernières lignes de mon texte .tmux.conf. De cette façon, je n'ai qu'à naviguer une fois dans le dossier, puis à créer mes fenêtres / fenêtres à partir de là, mais je reconnais que ce n'est pas une solution à votre problème, c'est pourquoi je n'ai pas posté de réponse!
Vincent Nivoliers

Réponses:

62
  1. Commencez tmuxcomme suit:

    (cd /aaa/bbb; tmux)
    

    Désormais, toutes les nouvelles fenêtres (ou volets) que vous créez commenceront dans un répertoire /aaa/bbb, quel que soit le répertoire en cours du volet en cours.

  2. Si vous souhaitez modifier le répertoire par défaut une fois tmuxopérationnel, utilisez attach-sessionavec -c.

    Citant la tmuxpage de manuel pour attach-session:

    -c will set the session working directory (used for new windows)
    to working-directory.
    

    Par exemple:

    • Ctrl+b :

    • attach -c /ddd/eee

    Les nouvelles fenêtres (ou volets) vont maintenant démarrer dans le répertoire /ddd/eee, quel que soit le répertoire du volet actuel.

Lqueryvg
la source
7
La deuxième option est exactement ce que je voulais. Je vais utiliser attach -c "#{pane_current_path}"ce qui serait le même que ce que j'ai eu à l'écran. Merci.
lewiatan
Oui! attach -cest exactement ce que je cherchais. Merci
Byron Mansfield
3

Pour ceux qui recherchent peut-être un peu plus de références que la réponse sélectionnée, il existe une autre bonne réponse à cette question sur StackOverflow:

https://stackoverflow.com/questions/27307815/how-to-change-the-starting-directory-of-a-tmux-session

Ce qui fournit des moyens de le faire sans quitter la session, et pour ceux qui utilisent tmux de manière multi-session (comme moi), la réponse ci-dessus donne un contexte un peu meilleur quant au fonctionnement de attach/ attach-session.

Voir les deux réponses disponibles pour différentes manières de les utiliser. J'ai trouvé les deux utiles et perspicaces.

nicklamuro
la source