Gnome-terminal列とxterm列の両方を構成しています(どちらを使用するかはまだ選択していません)。修正したい問題がいくつかあります。
(これが関係する場合に備えて、PS1でカスタムbashプロンプトを設定しました)
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 7.1 (wheezy)
Release: 7.1
Codename: wheezy
$ echo $TERM
xterm
$ stty -a
[peter@mine ~] $ stty -a
speed 38400 baud; rows 52; columns 126; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?; swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z;
rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd 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
$[peter@mine ~] $ # the column width only goes up to here ------------------------------------------------>
結果は、xtermとgnome-terminal3.4.1.1の両方で同じです。
ご覧のとおり、stty -a
コマンドの出力は画面の端まで届きますが、入力はそれほど遠くありません。
列を非常に大きな数に設定することで、目的の結果が得られることがわかりました。例:
$ stty cols 1800
これにより、両方の問題が修正されます。この問題を解決するための正しい方法ですか?これはプログラムからの出力を「壊す」のでしょうか?これまでにtop
とstty -a
を試しましたが、これらは問題ないようです。
コメントで要求された詳細情報
ファイルへの入力をcat
すると、列は実際にはターミナルウィンドウの幅全体に広がることがわかりました。
[peter@mine applications] $ cat > /tmp/asd
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasssssssssssssssssssssssssssssssssssssssssssssssssssssssssssqqqqqqqqqqqqqqqq
qqqq
これは、端末ではなく、列の数を制限しているのは実際にはbashであることを意味しますか?もしそうなら、bashの列数を変更する方法は?
~/.bashrc
のプロンプト定義でANSIコードを適切にエスケープしていない可能性があります
たとえば、PS1
は次のようになります。
PS1='\033[1;33m>\033[0m '
...シェル自体の幅の前に、ひどく折り返されます。
ASCIIエスケープ文字の前と定義ターミネータの後に角かっこを配置すると、これが修正され、予想される円記号が生成されます。
PS1='\[\033[1;33m\]>\[\033[0m\] '
つまり、\033
は\[\033
になり、m
はm\]
になります
(私は少し前にこれを自分で学びました ここ )。
コメントですでに指摘されているように、あなたの質問は、「明確化」した後でも、不明確で「不完全」です。たとえば、あなたはまだあなたがプログラム/アプリケーション/ターミナルエミュレータまたはターミナルのtypeを参照しているxtermを参照しているのかどうかを言っていません(つまり、$ TERMを入力したときに得られる値。それでも、答えを提供しようとします。少なくとも、正しい方向に導くためです。
Bashプロンプトをカスタマイズしたという事実を考えると、これが問題の原因になると思います。 関連するディスカッションの数 、参照、bashをカスタマイズした後にユーザーが遭遇する頻繁な行折り返しの問題に関する情報があります。これは、ほとんどの場合、 ANSIカラーコードのエスケープ の問題のようです。もう少し stackoverflowに関するQ&A 。
繰り返しますが、これを実現するためのオプションがいくつかあるため、howカスタマイズを行ったかどうかはわかりません(stty
の出力では何もわかりません)。ただし、default settingsおよびfilesのbackupを実行した場合は、それが最初のアクションになります。または、shopt -s checkwinsize
を試して選択されていることを確認することもできます。または、shopt -p
だけで、-s:のいずれかのbashオプションのリストが表示されます。 selectedまたは-:unselected。また、特にログインシェルの場合は、マニュアルページをチェックして、これらのいくつかについてのアイデアを入手してください。
最後に、質問をするときはもう少し具体的にしてください。またはさらに良いことに、すでに尋ねられている可能性のある同様の質問を前に検索してください。