Executar um comando em outro terminal existente pode ser feito, mas está longe de ser trivial.
Primeiro, você tem mais de um emulador de terminal aberto. Esses emuladores de terminal estão executando um shell, provavelmente bash
se você estiver no Linux. Com o comando ps
, você pode encontrar os IDs do processo (PID) de todos os shells em execução na sua máquina. A grande questão agora é; qual deles enviar o comando para?
Você está procurando por um shell que pertence ao terminal no qual deseja mostrar o comando. Executar o comando echo $$
no terminal em questão deve retornar o PID do shell em execução nesse terminal.
Usando o sistema de arquivos /proc
, você pode determinar a entrada padrão do shell /proc/<PID>/fd/0
, que é um dispositivo pty
.
Em seguida, você deseja enviar um comando para esse terminal. Isso tem que ser feito usando o comando TIOCSTI
ioctl
na pasta do shell. Você pode encontrar o código-fonte C para fazer isso aqui . Compile esse programa como, e. ttyecho
e coloque-o em um diretório em seu $ PATH.
Agora as peças estão no lugar, e você pode chamar o comando ttyecho
com o nome da pasta do shell e o comando python <filename>
.
Fazer tudo isso em vimscript é deixado como um exercício para o leitor. : -)