
eu usoTelacom muitas (mais de 10) sessões locais de Bash dentro. Eu mando alguns processos (como vi file
) para segundo plano e alterno entre sessões com muita frequência e às vezes é muito chato descobrir onde o arquivo que tenho que editar já está aberto.
Existe uma maneira de compartilhar esses processos em segundo plano para poder acessá-los de qualquer sessão do Bash dentro desta tela?
Responder1
Não, a documentação paracontrole de trabalho bashnão menciona nenhum suporte para compartilhamento ou adoção de empregos entre diferentes sessões do bash.
No entanto,reptirpermitirá que você assuma o controle de um trabalho que estava em segundo plano em outra sessão, que pode ser próximo o suficiente do que você deseja.
reptyr requer o pid do trabalho que você deseja assumir, então você precisa encontrar esse pid primeiro. Você pode decidir por si mesmo se isso é mais trabalhoso do que apenas encontrar a janela da tela original.
Parece que você está mais interessado em fazer isso com o vim (sim, você disse vi, mas presumo que o vim é o que você está executando nos bastidores). vim -r
fornecerá uma lista de todas as sessões abertas do vim, junto com os arquivos que elas estão editando. Leia a lista, encontre o pid que está usando o arquivo desejado e execute reptyr <pid>
.
Para ser mais completo, o vim não impedirá você de apenas editar um arquivo que já está aberto em outro lugar - usando vim -r <filename>
- mas lembre-se de recarregar o arquivo novamente :e
quando retornar à sessão original, para que suas novas edições sejam aplicadas à versão mais recente. vim irá lembrá-lo sobre isso em determinados eventos.
Responder2
Acho que a solução do seu problema está em outro lugar: você deve escrever um script que mostre todos os seus processos em segundo plano e a respectiva screen
janela.
Se esta for uma opção para você, sugiro algum código.