環境変数以外にも重要な環境があります。自分が使っている端末のタイプや受 け付けるエスケープシーケンス(制御文字)はスクリーンエディターなどを使う とき正確にシステムに知らせておく必要があります。少しでも間違っていると viが変な動きをしてしまいます。環境変数にTERMという変数があって端末の型 を知らせるようになっています。UNIXでは/etcにtermcapという大きなファイ ルがあって、様々な端末の型が定義してあります。TER M変数に書いてある型 をtermcapから探してスクリーンの制御のためのエスケープシーケンスを決定 します。
他の計算機にtelnetでログインすると端末の型が相手の計算機に知らされます が、そこのtermcapに自分の型がないことがよくあります。またvt100互換の端 末などを使っている場合にも必ずしも完全互換でない場合があったりします。 そういう場合にはスクリーンエディターはもちろん使用できなくなりますが行 編集のためのキーが使えないことなども起こります。このような場合termcap の中にある端末の型にTERMをセットしてやればよいのですがほとんど呪文なの でまずわかりません。該当するものがないときはtermcapを更新すればよいの ですが普通のユーザには許されていません。そこで自分の端末の機能やエスケー プシーケンスを別途教えてやる必要があります。sttyコマンドを使います。
% stty erase ^H
この場合例えば自分のキーボードでBSキーを押すと一文字消して欲しいのに^H
と表示してしまう時に消去文字を^H
に変更するものです。あるいは画面に入る
行数より多くの行をmo reやmanがスクロールしてしまうとき
% stty rows 24
としてやると次からは24行毎にページをめくってくれます。どのような設定が できるかはman sttyとやってみてください。