Il modo per farlo è staccarsi dalla sessione (^b d
con le combinazioni di tasti predefinite) e quindi specificare una directory diversa quando la ricolleghi. Quando ti colleghi a una sessione, usa -c
flag per specificare la directory di lavoro. Ecco un esempio:
$ tmux list-sessions
tmuxwtfbbq: 3 windows (created Tue Apr 5 14:25:48 2016) [190x49]
$ tmux attach-session -t tmuxwtfbbq -c /home/chuck/new_default_directory
Questa impostazione verrà mantenuta:dopo aver reimpostato la directory di lavoro, non dovrai continuare a specificarla ogni volta che ti ricolleghi alla sessione.
Per la cronaca, sono su tmux versione 2.0 (anche se non credo sia importante - non sono riuscito a trovare nulla sull'aggiunta di un -c
opzione al attach-session
comando nei log delle modifiche, quindi presumo sia lì da un po' di tempo).
La risposta di Chucksmash è buona, ma può anche essere ottenuta senza utilizzare la sessione, se lo desideri. Il comando attach-session
è disponibile anche nel prompt dei comandi di tmux; e la sessione di destinazione può essere specificata come sessione "corrente" utilizzando un punto.
attach-session -t . -c /path/to/new/directory
Ecco come puoi modificare la directory di lavoro della sessione tmux senza scollegare la sessione e senza dover utilizzare il <prefix>
sequenze di tasti:
(Opzione 1) Inserisci la directory in tmux
prompt dei comandi:
tmux command-prompt "attach -c %1"
...si aprirà un prompt dei comandi, quindi digita la directory di lavoro che desideri ~/my/dir
e premi ENTER
(Opzione 2) Fornisci la directory nella riga di comando nel riquadro:
# Execute this in one of the shell panes of within your tmux session:
tmux command-prompt -I $PWD -P "New session dir:" "attach -c %1"
Con questo approccio, il prompt per new-directory viene precompilato con la directory corrente del riquadro che ha avviato il comando. Ovviamente puoi sostituire qualsiasi altra cosa per $PWD
per favore.
Vuoi una funzione shell?
Ho aggiunto questo alla mia inizializzazione della shell:
# Change the current directory for a tmux session, which determines
# the starting dir for new windows/panes:
function tmux-cwd {
tmux command-prompt -I $PWD -P "New session dir:" "attach -c %1"
}
Con tutte queste opzioni, qualsiasi nuova finestra futura verrà avviata nella directory specificata.
Nota: attach
, attach-session
e a
sono tutti alias l'uno dell'altro. Il tmux command-prompt
ha molti altri poteri, vale la pena leggere la pagina man