La forma de hacerlo es desconectarse de la sesión (^b d
con las combinaciones de teclas predeterminadas) y luego especifique un directorio diferente cuando vuelva a adjuntarlo. Cuando se adjunte a una sesión, use el -c
bandera para especificar el directorio de trabajo. He aquí un ejemplo:
$ 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
Esta configuración se conservará:después de restablecer el directorio de trabajo, no necesitará seguir especificándolo cada vez que vuelva a conectarse a la sesión.
Para que conste, estoy en tmux versión 2.0 (aunque no creo que importe, no pude encontrar nada sobre agregar un -c
opción al attach-session
comando en los registros de cambios, así que asumo que ha estado allí durante bastante tiempo).
La respuesta de Chucksmash es buena, pero también se puede lograr sin usar la sesión si lo desea. El comando attach-session
también está disponible en el símbolo del sistema tmux; y la sesión de destino se puede especificar como la sesión "actual" usando un punto.
attach-session -t . -c /path/to/new/directory
Así es como puede cambiar el directorio de trabajo de la sesión tmux sin desconectar la sesión y sin necesidad de usar el <prefix>
pulsaciones de teclas:
(Opción 1) Ingrese al directorio en tmux
símbolo del sistema:
tmux command-prompt "attach -c %1"
...abrirá un símbolo del sistema, luego escriba el directorio de trabajo que desea ~/my/dir
y presiona ENTER
(Opción 2) Proporcione el directorio en la línea de comandos del panel:
# 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 este enfoque, la solicitud de nuevo directorio se completa previamente con el directorio actual del panel que inició el comando. Por supuesto, puede sustituir cualquier otra cosa por $PWD
por favor.
¿Quieres una función de shell?
He agregado esto a mi inicialización de 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 todas estas opciones, cualquier nueva ventana futura comenzará en el directorio dado.
Nota: attach
, attach-session
y a
son todos alias entre sí. El tmux command-prompt
tiene muchos otros poderes, vale la pena leer la página del manual