Es posible abrir un archivo new-window
con su directorio de trabajo configurado en el que estoy actualmente. Estoy usando zsh , si es importante.
fuente
Es posible abrir un archivo new-window
con su directorio de trabajo configurado en el que estoy actualmente. Estoy usando zsh , si es importante.
A partir de tmux 1.9 el default-path
fue retirado opción, por lo que es necesario utilizar la -c
opción con new-window
y split-window
(por ejemplo, mediante la revinculación c
, "
y %
fijaciones para incluir
-c '#{pane_current_path}'
). Vea algunas de las otras respuestas a esta pregunta para más detalles.
Una característica relevante aterrizó en el tronco de SVN de tmux a principios de febrero de 2012. En las compilaciones de tmux que incluyen este código, los enlaces de teclas de tmux que invocan new-window
crearán una nueva ventana con el mismo directorio de trabajo actual que los procesos activos del panel actual (siempre que la default-path
sesión la opción está vacía; está 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 utiliza 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, generalmente solo uso
tmux neww
en un shell que ya tiene el directorio de trabajo actual deseado.
Sin embargo, si preveo la necesidad de crear muchas ventanas con el mismo directorio de trabajo actual (o si quiero poder iniciarlas con el c
enlace de teclas <prefix> habitual ), entonces configuro la 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).
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 línea de comandos de tmux neww
.
Las preguntas frecuentes de tmux tienen una entrada titulada “¿Cómo puedo abrir una nueva ventana en el mismo directorio que la ventana actual?” Que describe otro enfoque; Sin embargo, es un poco complicado.
<prefix>c
para leer el directorio de trabajo de la instancia de shell subyacente (si existe) y configurar eldefault-path
antes de ejecutarnew-window
? ¿O es demasiado pedirle a tmux :)/proc/PID/cwd
en Linux)). Hay una posible solución parcial en una entrada de las preguntas frecuentes de tmux (tiene el shell registra su cwd cuando imprime una solicitud, luego vincula una clave que inicia un nuevo shell en el directorio grabado).default-path
opción de sesión (si está configurada). Las preguntas frecuentes de tmux tienen una entrada que describe una forma de vincular una clave que inicia una nueva ventana con el cwd del shell ejecutándose en la ventana actual ("¿Cómo puedo abrir una nueva ventana en el mismo directorio que la ventana actual?") , pero el método es bastante complicado. Probablemente se podría hacer lo mismo porsplit-window
ynew-session
(en lugar deneww
).La página de manual actual de Tmux (1.9a) enumera un
-c start-directory
parámetro opcional para algunos comandos, incluidosnew-window
ysplit-window
. También contiene la variable de formatopane_current_path
, que se refiere aCurrent path if available
.Combinando estos, podemos abrir una nueva ventana con el directorio de trabajo actual usando
new-window -c "#{pane_current_path}"
La cita es necesaria 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 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
. La"
cita entre comillas es decirle a Tmux que no debe comenzar una cadena, sino vincular la "clave.fuente
prefix
-:
, luego escribasource ~/.tmux.conf
tmux source-file .tmux.conf
.Si, uso
new-window -c "#{pane_current_path}"
. Puede agregar lo siguiente a su~/.tmux.conf
para que sea persistente (asumiendo las combinaciones de teclas predeterminadas):los
default-path
configuración de la ruta se eliminó del código ascendente y el autor de tmux lo recomendó en ese mensaje de confirmación utilizando-c "#{pane_current_path}"
o-c "$PWD
en los comandosnew-window
ysplit-window
.También respondí en esto pregunta duplicada .
fuente
Con versiones recientes de tmux (v1.8, pero quizás también en v1.7):
fuente
tmux split-window -v -c "$PWD"
$PWD
no parece funcionar para mí en tmux 1.9a. Tuve que usarpane_current_path
como se sugirió anteriormente.Las otras respuestas no funcionan para mí cuando trato de ponerlas como enlaces (específicamente
tmux split-window -c
). Pero he creado mi propia solución que he estado usando durante más de un año que funciona tanto para ventanas nuevas como para divisiones:~/.bashrc
:~/.tmux.conf
:Funciona, al menos, con $ (tmux -V) 1.8. Vea las líneas no comentadas aquí para obtener una versión que funcione para tmuxes anteriores que no tienen el comando show-environment.
fuente
tmux hizo eso en la versión 1.8 pero en 1.9 esta característica fue eliminada a favor de usar
-c
flag.Esto se puede resolver pero volver a vincular,
new-window
pero en caso de que desee ejecutar otra cosa, se vuelve demasiado prolijo: en lugar de escribirneww man tmux
, tendrá que escribirneww -c "#{pane_current_path}" man tmux
lo que probablemente no quiera hacer.Hay un mod de tmux (soy el autor) para agregar un lenguaje de scripting adecuado a tmux para permitir el uso de alias, vincular múltiples comandos en 'modo', variables, bucles, etc. Y también, trae de vuelta ese comportamiento : se abren ventanas y paneles nuevos en el directorio actual.
Se puede construir a partir de fuentes aquí: http://ershov.github.io/tmux/
fuente