le nouveau volet de tmux a le répertoire personnel par défaut au lieu du répertoire précédent

24

Lorsque j'appuie sur Ctrl+ "(créer un nouveau volet) dans un volet contenant, PWD /tmppar exemple, le nouveau volet démarre en tant que dossier de départ ~.

J'ai regardé /unix//a/109255/72471 et cela m'a aidé avec le même problème concernant Windows.

Cependant, je n'ai pas pu résoudre le split-windowproblème en insérant

bind " split-window -c "#{pane_current_path}"

dans mon ~/.tmux.conf.

J'utilise tmux 1.9a et je ne veux donc pas d'une solution plutôt compliquée pour les anciennes versions indiquées ici (cela ne fonctionne pas dans mon cas, de toute façon):

bind '"' set default-path "" \; split-window -v \; set -u default-path

Comment puis-je dire tmuxde définir le répertoire par défaut comme chemin d'accès actuel d'un volet, lors de la création d'un nouveau volet?

polym
la source

Réponses:

45

Essayez de spécifier vvertical ou hhorizontal

Mon .tmux.confdossier a:

bind \ split-window -h -c '#{pane_current_path}'  # Split panes horizontal
bind - split-window -v -c '#{pane_current_path}'  # Split panes vertically

(J'utilise \et -comme séparateurs de volet à un doigt.)

De nouveaux volets s'ouvrent pour moi en utilisant mon répertoire actuel, où que je sois.
C'est certainement une caractéristique clé pour moi!

Une autre chose critique avec tmux (c'était le problème dans ce cas) est que vous devez appliquer les modifications avec:

tmux source-file ~/.tmux.conf

Notez que la fermeture des terminaux, même la déconnexion et le redémarrage, N'APPLIQUERA PAS les modifications de tmux - vous devez réellement utiliser cette commande (ou utiliser Ctrl+ B :source-file ~/.tmux.conf).

Vous pouvez voir mon .tmux.conffichier complet sur https://github.com/durrantm/setups .

Michael Durrant
la source
2
Vous avez dit "Notez que la fermeture des terminaux, même la déconnexion et le redémarrage n'appliqueront PAS les modifications de tmux". Bien sûr, si vous n'avez détaché que tmux, ce ne sera pas le cas, mais tuer et redémarrer le serveur appliquera les modifications :).
soyuka
2
Merci beaucoup! C'était super utile. Cependant, je suis presque sûr que le redémarrage de l'ordinateur applique les modifications de tmux :)
vitiral
Le redémarrage de l'ordinateur n'a pas appliqué de modifications pour moi, ce qui a entraîné une confusion pour moi. ymmv
Michael Durrant
Notez que la même chose peut être faite pournew-window
math2001
25
bind '%' split-window -h -c '#{pane_current_path}'  # Split panes horizontal
bind '"' split-window -v -c '#{pane_current_path}'  # Split panes vertically
bind c new-window -c '#{pane_current_path}' # Create new window

Ajoutez également la dernière ligne à votre ~/.tmux.confpour maintenir $PWDdans une nouvelle fenêtre.

Shubham
la source
6

C'est parce que,

bind " split-window -c "#{pane_current_path}"

devrait être

bind '"' split-window -c "#{pane_current_path}"
Giumo
la source
2

Si quelqu'un arrive ici en recherchant, cela fonctionne très bien avec tmux 2.7 et devrait convenir à toutes les versions

unbind '"'
bind '"' split-window -v -c '#{pane_current_path}'  # Split panes vertically

unbind %
bind % split-window -h -c '#{pane_current_path}'  # Split panes horizontal
ShahinSorkh
la source