R.A. Epigonos et al.

[stty] ターミナルの行数と幅の取得方法

コマンドラインの出力を横幅の狭いデバイスで表示すると改行が入ったりする。いちいち改行位置を指定するのも面倒なので、標準的な25x80サイズで出力を制限したらどう見えるか知りたい。

stty size と LINES や COMUMNS 環境変数を参照する方法とがある。

$ stty size
85 158
$ echo ${LINES} ${COLUMNS}
85 158

LINES や COMUMNS 環境変数を考慮するかはプログラムに依存。例えば以下のとおり、stty は COMUMNS を無視している。

$ COLUMNS=80 stty -a
speed 38400 baud; rows 85; columns 158; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

GNU Screen では resize コマンドでスクリーンのサイズを変更できる。縦幅と横幅を指定するので、リージョンを縦方向と横方向に分ける必要があるが。使い方は以下。-h で縦幅、-v で縦幅、-l で横幅

: usage: resize [-h] [-v] [-l] [num]

ということで、C-a :resize -h 80C-a :resize -l 25とすれば、以下の結果が得られる。

$ stty size && echo ${LINES} ${COLUMNS}
24 79
24 79

リファレンス

  1. Text mode - Wikipedia, the free encyclopedia

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2008-03-11T02:06:35+09:00
  2. Modified: 2008-03-11T02:06:35+09:00
  3. Generated: 2023-08-27T23:09:13+09:00