私はOSを使用しますこのプロセスでターミナルウィンドウのサイズを頻繁に調整すると、Nanoインターフェースのサイズがウィンドウに合わせて調整されます。これは素晴らしいですし、私がやっていることと期待される動作をよりよく見ることができます。
ただし、Pythonはコンピューティングと開発にipythonを使用しますが、この対話型シェルをロードすると、現在のターミナルウィンドウの境界でシェルの幅と高さが調整されるように見えますが、ウィンドウサイズが動的に調整されている場合はそうではありません。 。
したがって、ipythonで「!nano」などのコマンドを使用してNanoエディタを実行すると、最初は読み込まれ、現在のウィンドウサイズに正しく表示されますが、ウィンドウのサイズを変更すると、Nanoインターフェイスがラップまたは展開されるとテキストが壊れます。 ipythonシェルの明らかな範囲を超えています。
これは、ipythonがウィンドウの境界またはウィンドウ内で実行されているシェルとどのように対話するかに関するいくつかの制限のようです。私は言うことができませんし、それを経験している誰かが(可能であれば)ipython(またはここで扱うすべて)がターミナルウィンドウに基づいて正しくサイズを変更する方法を教えてくれることを願っています。
以下は、その様子を示すスクリーンショットです。最初はウィンドウが大きかったので、ipythonを実行してインタプリタをロードし、次に!nanoを実行してipythonでnanoを起動しました。その後、ウィンドウのサイズを変更しましたが、これが結果です。私はこのサイズ変更によってナノインターフェイスを保存できることを願っています(そして方法を探してください)。これはipythonでのみ起こるので、明らかにその環境のどこかに制限があります。
答え1
端末のサイズ変更は、SIGWINCH
フォアグラウンドアプリケーションに送信される信号を生成します。アプリケーションはこの信号を取得し(最初に端末のサイズに興味がある場合)、それに応じて調整する必要があります。nano
実行時に端末のサイズを変更したときに発生する現象は、受信は行われますがipython
再送信されないことです。私はあなたがそれについてできることがないと思います(IPython開発者にバグとして報告する以外)。ipython
SIGWINCH
nano