Respuestas:
Utilizar:
tmux split-window "shell command"
El split-window
comando tiene la siguiente sintaxis:
split-window [-dhvP] [-c start-directory] [-l size | -p percentage] [-t target-pane] [shell-command] [-F format]
(de la man tmux
sección "Ventanas y paneles"). Tenga en cuenta que el orden es importante: el comando debe aparecer después de cualquiera de las opciones anteriores que aparecen y debe ser un argumento único, por lo que debe citarlo si tiene espacios.
Para comandos como ping -c
ese terminan rápidamente, puede configurar la remain-on-exit
opción primero:
tmux set-option remain-on-exit on
tmux split-window 'ping -c 3 127.0.0.1'
El panel permanecerá abierto después de ping
finalizar, pero se marcará como "muerto" hasta que lo cierre manualmente.
Si no desea cambiar las opciones generales, hay otro enfoque. El comando se ejecuta con sh -c
, y puede explotarlo para que la ventana permanezca viva al final:
tmux split-window 'ping -c 3 127.0.0.1 ; read'
Aquí usa el read
comando shell para esperar una nueva línea ingresada por el usuario una vez que el comando principal ha finalizado. En este caso, la salida del comando permanecerá hasta que presione Enterel panel y luego se cerrará automáticamente.
remain-on-exit
o usar cmd ; read
.
bash --rcfile
Esta técnica abre un nuevo shell, ejecuta comandos y lo deja allí después de que finalizan los comandos:
tmux-split-cmd() ( tmux split-window -dh -t $TMUX_PANE "bash --rcfile <(echo '. ~/.bashrc;$*')" )
tmux-split-cmd 'cd; pwd; ping google.com'
O si el comando no tiene caracteres terminales especiales como ;
solo:
tmux-split-cmd ping google.com
Esto usa:
--rcfile
: ¿Cómo invocar bash, ejecutar comandos dentro del nuevo shell y luego devolver el control al usuario? El | Desbordamiento de pilaTMUX_PANE
: ¿Cómo dividir la ventana que ejecutó el comando "tmux split-window" en lugar del actual?Otra variante interesante es:
tmux-split-cmd-uniq() (
if [ "$(tmux list-panes | wc -l | cut -d' ' -f1)" -ne 1 ]; then
tmux kill-pane -t 1
fi
tms "$@"
)
que mata la división anterior si ya existe, y ayuda a mantener solo una división adicional en todo momento.
man tmux | less -p remain-on-exit
...