Cómo cambiar el directorio predeterminado de la nueva ventana desde tmux

43

Recientemente me mudé de la pantalla de GNU a tmux .
Lo encuentro bastante similar, pero con un mayor soporte ( cambié debido a un problema con el tiempo de escape en neovim , la resolución fue solo para tmux).

Desafortunadamente en tmux no puedo encontrar un comando similar a este:

screen -X eval "chdir $(some_dir)"

El comando anterior cambió el directorio predeterminado para la nueva ventana / pantalla / panel desde la pantalla GNU, así que cuando presioné Ctrl+ a(similar a tmux Ctrl+ b) - se abrió una nueva ventana en el $(some_dir)directorio.

¿Hay algo similar en tmux?

RESPUESTA:
He usado la respuesta @Lqueryvg y la combiné con la sugerencia de @Vincent Nivoliers de un comentario y eso me dio un nuevo enlace para un comando attach -c "#{pane_current_path}"que establece mi directorio actual como predeterminado.
Gracias.

lewiatan
fuente
Podría usar la segunda respuesta de esta pregunta
Vincent Nivoliers,
Gracias, es útil. new-window -c "#{pane_current_path}"está funcionando pero lo que necesito es establecer la ruta de forma permanente, es decir: estoy trabajando en un proyecto en / aaa / bbb pero de alguna manera cuando cambio la ruta para decir / ccc / ddd y comenzar de nuevo con Cb y c quiero aterrizar una vez más en / aaa / bbb. ¿Se te ocurre una solución para esto?
Lewiatan
Personalmente estoy bien con la adición de las últimas tres líneas en mi .tmux.conf. De esa manera solo tengo que navegar una vez a la carpeta y luego crear mi ventana / división desde allí, pero admito que esta no es una solución a su problema, ¡por eso no publiqué una respuesta!
Vincent Nivoliers

Respuestas:

62
  1. Comience de la tmuxsiguiente manera:

    (cd /aaa/bbb; tmux)
    

    Ahora, cualquier nueva ventana (o panel) que cree comenzará en el directorio /aaa/bbb, independientemente del directorio actual del panel actual.

  2. Si desea cambiar el directorio predeterminado una vez que tmuxesté en funcionamiento, utilícelo attach-sessioncon -c.

    Citando de la tmuxpágina del manual para attach-session:

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

    Por ejemplo:

    • Ctrl+b :

    • attach -c /ddd/eee

    Las nuevas ventanas (o paneles) ahora comenzarán en el directorio /ddd/eee, independientemente del directorio del panel actual.

Lqueryvg
fuente
77
La segunda opción es exactamente lo que quería. Voy a usar lo attach -c "#{pane_current_path}"que sería lo mismo que he tenido en la pantalla. Gracias.
lewiatan
¡Sí! attach -ces exactamente lo que estaba buscando Gracias
Byron Mansfield
3

Para aquellos que podrían estar buscando un poco más de referencia de la que proporciona la respuesta seleccionada, hubo otra buena respuesta a esta pregunta en StackOverflow:

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

Lo que proporciona formas de hacerlo sin salir de la sesión, y para aquellos que usan tmux en una sesión de varias sesiones (como yo), la respuesta anterior ofrece un contexto un poco mejor sobre cómo attach/ attach-sessionfunciona.

Vea ambas respuestas disponibles para conocer las diferentes formas en que se pueden usar. Encontré que ambos eran útiles / perspicaces.

nicklamuro
fuente