Il est possible d'ouvrir a new-window
avec son répertoire de travail défini sur celui dans lequel je suis actuellement. J'utilise zsh , si cela compte.
la source
Il est possible d'ouvrir a new-window
avec son répertoire de travail défini sur celui dans lequel je suis actuellement. J'utilise zsh , si cela compte.
A partir de tmux 1.9 l' default-path
option a été supprimée, de sorte que vous devez utiliser l' -c
option en new-window
, et split-window
(par exemple reconsolidation la c
, "
et les %
liaisons à inclure
-c '#{pane_current_path}'
). Voir d'autres réponses à cette question pour plus de détails.
Une fonctionnalité pertinente a atterri dans la jonction SVN de tmux au début du mois de février 2012. Dans les versions tmux incluant ce code, les liaisons de clé tmux appelantesnew-window
créeront une nouvelle fenêtre avec le même répertoire de travail actuel que les processus actifs du volet actuel (tant que la default-path
session est active). l’option est vide, c’est par défaut). Il en va de même pour le volet créé par la split-window
commande lorsqu'il est appelé via une liaison.
Ceci utilise un code spécifique à la plate-forme, de sorte que seuls certains systèmes d'exploitation sont actuellement pris en charge: Darwin (OS X), FreeBSD, Linux, OpenBSD et Solaris.
Cela devrait être disponible dans la prochaine version de tmux (1.7?).
Avec tmux 1.4, je n’utilise généralement que
tmux neww
dans un shell qui a déjà le répertoire de travail actuel souhaité.
Si, toutefois, je prévois avoir besoin de créer plusieurs fenêtres avec le même répertoire de travail actuel (ou si je veux pouvoir les démarrer avec la c
liaison de clé <préfixe> habituelle ), alors je mets l' default-path
option de session via
tmux set-option default-path "$PWD"
dans un shell qui a déjà le répertoire de travail actuel souhaité (bien que vous puissiez évidemment le faire depuis n'importe quel répertoire et spécifier simplement la valeur à la place).
Si default-path
est défini sur une valeur non vide, sa valeur sera utilisée au lieu d’hériter du répertoire de travail en cours à partir des appels de ligne de commande de tmux neww
.
La FAQ de tmux a une entrée intitulée «Comment puis-je ouvrir une nouvelle fenêtre dans le même répertoire que la fenêtre actuelle?» Qui décrit une autre approche; c'est un peu compliqué cependant.
<prefix>c
lecture du répertoire de travail de l’instance de shell sous-jacente (le cas échéant) et de la définirdefault-path
avant l’exécutionnew-window
. Ou est-ce trop demander à tmux :)/proc/PID/cwd
sur Linux)). Il existe une solution partielle dans une entrée de la FAQ de tmux (le shell enregistre son cwd lorsqu’il imprime une invite, puis lie une clé qui démarre un nouveau shell dans le répertoire enregistré).default-path
option de session (si celle-ci est définie). La FAQ de tmux contient une entrée décrivant un moyen de lier une clé qui ouvre une nouvelle fenêtre avec le cwd du shell exécuté dans la fenêtre actuelle ("Comment puis-je ouvrir une nouvelle fenêtre dans le même répertoire que la fenêtre actuelle?") , mais la méthode est assez compliquée. La même chose pourrait probablement être faite poursplit-window
etnew-session
(au lieu deneww
).La page de manuel actuelle (1.9a) de Tmux répertorie un
-c start-directory
paramètre facultatif pour certaines commandes, notammentnew-window
etsplit-window
. Il contient également la variable de formatpane_current_path
, qui fait référence àCurrent path if available
.En les combinant, nous pouvons ouvrir une nouvelle fenêtre avec le répertoire de travail actuel à l'aide de
new-window -c "#{pane_current_path}"
La citation est nécessaire dans le cas où le chemin actuel contient des espaces.
Si vous souhaitez diviser le volet actuel verticalement, utilisez
split-window -c "#{pane_current_path}"
ou, pour une division horizontale
split-window -h -c "#{pane_current_path}"
Pour que les raccourcis clavier ouvrent de nouvelles divisions et fenêtres avec le répertoire de travail actuel par défaut, ajoutez ce qui suit à votre
.tmux.conf
. Les"
guillemets environnants indiquent à Tmux qu'il ne devrait pas commencer une chaîne, mais plutôt lier la "clé.la source
prefix
-:
, puis tapezsource ~/.tmux.conf
tmux source-file .tmux.conf
.Oui, utilisez
new-window -c "#{pane_current_path}"
. Vous pouvez ajouter ce qui suit à votre~/.tmux.conf
pour le rendre persistant (d'assumer les associations de touches par défaut):Le
default-path
réglage de la trajectoire a été retiré à partir du code en amont et l' auteur de tmux recommandé par le fait que le message de validation en utilisant soit-c "#{pane_current_path}"
ou-c "$PWD
dans lenew-window
et lessplit-window
commandes.J'ai également répondu à cette question en double .
la source
Avec les versions récentes de tmux (v1.8, mais peut-être aussi dans v1.7):
la source
tmux split-window -v -c "$PWD"
$PWD
ne semble pas fonctionner pour moi dans tmux 1.9a. Je devais utiliserpane_current_path
comme suggéré ci-dessus.Les autres réponses ne fonctionnent pas pour moi lorsque j'essaie de les définir comme des liaisons (spécifiquement
tmux split-window -c
). Mais j'ai créé ma propre solution que j'utilise depuis plus d'un an et qui fonctionne à la fois pour new-window et les divisions:~/.bashrc
:~/.tmux.conf
:Fonctionne au moins avec $ (tmux -V) 1.8. Voir les lignes commentées ici pour une version fonctionnant pour les anciens tmux n'ayant pas la commande show-environment.
la source
tmux l’a fait dans la version 1.8 mais en 1.9 cette fonctionnalité a été supprimée au profit de
-c
flag.Cela peut être résolu en liant
new-window
mais si vous voulez utiliser autre chose, cela devient trop verbeux: au lieu de taper,neww man tmux
vous devrez taperneww -c "#{pane_current_path}" man tmux
ce que vous ne voudrez probablement pas faire.Il existe un mod de tmux (j'en suis l'auteur) pour ajouter un langage de script approprié à tmux afin de permettre l'utilisation d'alias, la liaison de plusieurs commandes en "mode", des variables, des boucles, etc. : de nouvelles fenêtres et volets sont ouverts dans le répertoire en cours.
Il peut être construit à partir de sources ici: http://ershov.github.io/tmux/
la source