
yo sueloPantallacon muchas (más de 10) sesiones Bash locales dentro. Envío algunos procesos (como vi file
) a un segundo plano y cambio entre sesiones muy a menudo y, a veces, es muy molesto saber dónde ya está abierto el archivo que tengo que editar.
¿Existe alguna forma de compartir dichos procesos en segundo plano para poder acceder a ellos desde cualquier sesión de Bash dentro de esta pantalla?
Respuesta1
No, la documentación paracontrol de trabajo bashno menciona ningún soporte para compartir o adoptar trabajos entre diferentes sesiones de bash.
Sin embargo,reptyrle permitirá tomar el control de un trabajo que estaba en segundo plano en otra sesión, que podría estar lo suficientemente cerca de lo que desea.
reptyr requiere el pid del trabajo que desea realizar, por lo que primero debe encontrar ese pid. Puedes decidir por ti mismo si esto supone más trabajo que simplemente encontrar la ventana de pantalla original.
Parece que lo que más te interesa es hacer esto con vim (sí, dijiste vi, pero supongo que vim es lo que estás ejecutando bajo el capó). vim -r
le dará una lista de todas las sesiones vim abiertas, junto con los archivos que están editando. Lea la lista, busque el pid que utiliza el archivo que desea y ejecute reptyr <pid>
.
Para ser más exhaustivo, vim no le impedirá editar un archivo que ya está abierto en otro lugar (usando vim -r <filename>
), pero recuerde volver a cargar el archivo cuando :e
regrese a la sesión original, para que sus nuevas ediciones se apliquen a la última versión. vim le recordará esto en ciertos eventos.
Respuesta2
Supongo que la solución a tu problema está en otra parte: deberías escribir un script que muestre todos tus procesos en segundo plano y la screen
ventana respectiva.
Si esta es una opción para usted, le sugeriría algún código.