Estoy tratando de vincularme X
para hacer lo siguiente:
- preguntar al usuario si la sesión debe ser eliminada
- si
y
se ingresa, elimine la sesión - después de que se elimine la sesión, seleccione otra sesión (última, anterior o siguiente)
Algunos comandos similares que no son del todo correctos
Mata la sesión y cierra la terminal:
bind X confirm-before -p "Kill #S (y/n)?" kill-session
Solicite al usuario el nombre de la sesión para matar y seleccione la siguiente sesión después de matar:
bind X command-prompt -p "kill:" "switch-client -n \; kill-session -t '%%'"
No he podido encontrar ejemplos de comandos similares. Aquí hay una solución que no funciona:
bind X confirm-before -p "Kill #S (y/n)?" "SESSION='#S' \; \ switch-client -n \; kill-session -t \"$SESSION\""
tmux display-message -p "#S"
truco en otra respuesta. Parece que envolver todo en run-shell fue la clave. ¡Gracias!confirm-before
? Estoy teniendo problemas para escapar bien.bind-key X run-shell 'tmux switch-client -n \; kill-session -t "#S"'
( tmux 1.8+ serun-shell
expande#S
directamente, por lo que podemos omitir eldisplay-message
y su cita adicional)Por si acaso, si alguien se topa con esta pregunta, tmux-sessionist proporciona esta funcionalidad junto con muchas otras.
fuente
Hay otra pregunta que hace una pregunta similar pero es ligeramente diferente.
Si desea el
choose-session
comportamiento estándar con la función adicional que mata la sesión original si no quedan otros clientes vinculados a ella, entonces esa pregunta también puede ser de interés.fuente
Ampliando la respuesta de Chris Johnsen (en los comentarios) arriba, sobre cómo hacerlo sin aviso o
confirm-before
:Si solo queda 1 sesión (la sesión en la que se encuentra actualmente) y ejecuta el comando, recibirá un mensaje de "error" y la sesión no se cancela. Normalmente (si eres como yo) quieres que el comando siga matando la sesión aunque no haya otra sesión a la que pueda cambiar. Entonces esto es lo que se me ocurre:
fuente