
新しい 14.04 LTS gnome-terminal で Python を起動すると、文字幅は 80 文字になります。
$ python
>>> import os
>>> os.popen('stty size', 'r').read()
'24 80\n'
gnome-terminal のサイズを変更すると、新しいサイズが報告されます。
>>> os.popen('stty size', 'r').read()
'23 170\n'
ただし、入力 Python プロンプトではサイズ変更が認識されず、長い行を入力すると行の先頭が上書きされ始めます。
nm> 1234567890qwertyuiopåasdfghjklæøzxcvbnm1234567890qwertyuiopåasdfghjklæøzxcvb
ここで「nm」はラップされます。
gnome-terminal のメニューからリセットしても効果がありません。ウィンドウのサイズが変更されたことを Python インタープリターに通知する方法はありますか?
答え1
これは、readline バージョン 6.3 がリリースされてから発生した Python のバグです。Ubuntu 14.04 には libreadline6 バージョン 6.3-4ubuntu2 が含まれているため、14.04 以降のすべての Ubuntu リリースが影響を受けます。
このバグはPythonで修正されましたが、修正はまだ公式リリースには含まれていません。アップストリームのバグレポートを参照してください。ここ。
この記事の執筆時点での最新リリースは 2.7.11 と 3.5.1 なので、次のリリース 2.7.12、3.5.2、3.6.0 では修正されるはずです。