Redimensionando a janela do terminal para o prompt de comando do ipython

1

Estou usando o OS X Terminal (eu sei, não Linux ou Unix, mas espero que isso seja irrelevante aqui) para uma série de operações, e geralmente uso o nano para editar arquivos rapidamente. Ao fazê-lo, muitas vezes redimensiono a janela do Terminal e a interface nano é redimensionada de acordo com a janela. Isso é ótimo, me permite ver melhor o meu trabalho e é um comportamento esperado.

No entanto, também uso o ipython para cálculos e desenvolvimento em python, mas quando carrego esse shell interativo parece dimensionar a largura e a altura do shell nos limites da janela do Terminal atual, mas não serão redimensionados dinamicamente se a janela for redimensionada .

Como resultado, se eu usar um comando como "! nano" no ipython para iniciar o editor nano, ele inicialmente carregará e parecerá correto no tamanho atual da janela, mas redimensionar a janela irá distorcer a interface nano conforme ela é envolvida em torno ou se estende além dos limites aparentes do shell ipython.

Isso parece ser uma limitação de como o ipython está interagindo com os limites da janela ou do shell em execução na janela. Eu não posso dizer, e estou esperando que alguém com experiência nisso me aponte para uma maneira (se possível) de ter o ipython (ou o que quer que esteja envolvido aqui) se redimensionar adequadamente de acordo com a janela do Terminal.

Aqui está uma captura de tela do que parece. Inicialmente, a janela era maior, então executei o ipython para carregar o interpretador e, em seguida, executei o comando! Nano para iniciar o nano dentro do ipython. Eu então redimensionei a janela e é isso que resulta. Eu esperaria (e esperaria encontrar um caminho) para tal redimensionamento para preservar a interface nano. Isso só acontece no ipython, então é claramente uma restrição em algum lugar nesse ambiente.

    
por Topher 24.05.2015 / 20:36

1 resposta

2

O redimensionamento do terminal gera um sinal SIGWINCH que é enviado para os aplicativos de primeiro plano. Essas aplicações supostamente captam esse sinal (desde que se preocupem com o tamanho do terminal, para começar) e ajustam-se de acordo. O que parece estar acontecendo quando você redimensiona o terminal enquanto nano está sendo executado a partir de ipython é que ipython recebe o SIGWINCH , mas não o reenvia para nano . Eu não acho que há algo que você possa fazer sobre isso (exceto relatar isso como um bug para os desenvolvedores do IPython).

    
por 24.05.2015 / 20:54