Solución:
La página de manual actual (1.9a) de Tmux enumera una -c start-directory
parámetro para algunos comandos, incluyendo new-window
y split-window
. También contiene la variable de formato pane_current_path
, que se refiere a la
Current path if available
.
Combinando estos, podemos abrir una nueva ventana con el directorio de trabajo actual usando
new-window -c "#{pane_current_path}"
Las citas son necesarias en caso de que la ruta actual contenga espacios.
Si desea dividir el panel actual verticalmente, use
split-window -c "#{pane_current_path}"
o, para una división horizontal
split-window -h -c "#{pane_current_path}"
Para hacer que las combinaciones de teclas abran nuevas divisiones y ventanas con el directorio de trabajo actual de forma predeterminada, agregue lo siguiente a su .tmux.conf
. los "
con comillas circundantes es para decirle a Tmux que no debe iniciar una cadena, sino unir el " llave.
bind '"' split-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"
Empezando en tmux 1.9 el default-path
se eliminó la opción, por lo que debe usar la -c
opción con new-window
, y split-window
(por ejemplo, volviendo a unir el c
, "
, y %
enlaces para incluir
-c '#{pane_current_path}'
). Consulte algunas de las otras respuestas a esta pregunta para obtener más detalles.
Una característica relevante aterrizó en el tmux Tronco SVN a principios de febrero de 2012. En tmux compilaciones que incluyen este código, tmux vinculaciones de teclas que invocan new-window
creará una nueva ventana con el mismo directorio de trabajo actual que los procesos activos del panel actual (siempre que el default-path
la opción de sesión está vacía; es por defecto). Lo mismo es cierto para el panel creado por el split-window
comando cuando se invoca a través de un enlace.
Esto usa un código especial específico de la plataforma, por lo que solo ciertos sistemas operativos son compatibles en este momento: Darwin (OS X), FreeBSD, Linux, OpenBSD y Solaris.
Esto debería estar disponible en la próxima versión de tmux (1,7?).
Con tmux 1.4, por lo general solo uso
tmux neww
en un shell que ya tiene el directorio de trabajo actual deseado.
Sin embargo, si anticipo la necesidad de crear muchas ventanas con el mismo directorio de trabajo actual (o quiero poder iniciarlas con el habitual
c
enlace de teclas), luego configuro el default-path
opción de sesión a través de
tmux set-option default-path "$PWD"
en un shell que ya tiene el directorio de trabajo actual deseado (aunque obviamente podría hacerlo desde cualquier directorio y simplemente especificar el valor en su lugar).
Si default-path
se establece en un valor no vacío, su valor se utilizará en lugar de “heredar” el directorio de trabajo actual de las invocaciones de la línea de comandos de tmux neww
.
los tmux Las preguntas frecuentes tienen una entrada titulada “¿Cómo puedo abrir una nueva ventana en el mismo directorio que la ventana actual?” que describe otro enfoque; aunque es un poco complicado.
Si, usa new-window -c "#{pane_current_path}"
. Puede agregar lo siguiente a su ~/.tmux.conf
para hacerlo persistente (asumiendo combinaciones de teclas predeterminadas):
bind c new-window -c "#{pane_current_path}"
bind '"' split-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
los default-path
La configuración de ruta se eliminó del código ascendente y el autor de tmux recomendó en ese mensaje de confirmación utilizando -c "#{pane_current_path}"
o -c "$PWD
en el new-window
y split-window
comandos.
También respondí en esta pregunta duplicada.