bashの履歴からアクセスすると、長いコマンドの先頭が画面で途切れる


9

OS X Lionでbashとscreenのデフォルトバージョンを使用しています。

スクリーンセッションでbashの履歴をスクロールバックすると、折り返すのに十分な長さのコマンドが表示されます。

最初にいくつかのコマンドを入力します。

selassid@tem02:~$ ls ljmix/fiftyfifty_softsphere/T0.350/r2.43/0.565421311859c0.1
83279836214c0.144847759343/

上記のように適切に折り返されますが、bashの履歴からアクセスするために上に押した場合、コンソールには以下のみが表示されます。

83279836214c0.144847759343/

したがって、プロンプトとコマンドの最初の行全体が欠落しているため、編集が困難です。最初の行にスクロールして戻ると表示されますが、出力の最後の行が上書きされます。コマンドを実行すると、最初の行の残りが表示され、すべてが期待どおりに表示されます。

selassid@tem02:~$ ls ljmix/fiftyfifty_softsphere/T0.350/r2.43/0.565421311859c0.1
83279836214c0.144847759343/
total 1792
...
selassid@tem02:~$ 

さらに興味深いのは、履歴を使用して長いコマンドにアクセスしたがまだ実行していない場合、C-a別のウィンドウに切り替えてから戻るなどの画面コマンドを使用するか、現在のターミナルウィンドウの外をクリックしてこれに戻ると、履歴コマンドが再び正しく表示されるようになりました。

私は、PS1='\u@\h:\w$ 'そうそこには何も奇妙な進行があります。

履歴を使用するときにコマンド全体を正しく表示する方法はありますか?私はスクリーンラップ設定で遊んでみましたが、状況が悪化するだけです。

stty -a ショー:

speed 9600 baud; 46 rows; 80 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
    -echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
    -extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel iutf8
    -ignbrk brkint -inpck -ignpar -parmrk
oflags: opost onlcr -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
    -dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
    eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
    min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
    stop = ^S; susp = ^Z; time = 0; werase = ^W;

画面内で$ TERMをエコーし​​て出力を提供できますか?また、tput amを実行すると、エコー$ ?、何を手に入れますか?
Patrick

TERMis xterm-256colorand tput am; echo $?just just 0.
selassid

また、これはウィンドウの下部にある履歴をスクロールしているときにのみ発生するため、すべてのテキストを上に移動して、履歴のコマンドの2行目を表示する必要があります。
selassid '12

の出力はstty -a何ですか?
アンディ・スミス

投稿の下部に追加しました。画面が実行されていないときに出力されるものと一致します。
selassid 2011

回答:


1

上記のコメントへの回答に基づいて、起動スクリプトの1つでTERMを上書きしているようです。画面内では、TERMは「xterm-256color」ではなく「screen」に設定する必要があります。

シェルスタートアップスクリプトを調べます。〜/ .bashrc、/ etc / bash / bashrc、およびすべての設定方法に応じて〜/ .bash_profileや/ etc / profileなどの他のファイル。TERM = "..."設定がある場合は、それらを削除する必要があります。


それは本当でしたが、それらを削除した後でも、TERMが画面内で「画面」であることを確認しても問題は解決しません。
selassid

〜/ .inputrcまたは/ etc / inputrcはありますか?その場合は、horizo​​ntal-scroll-modeが設定されていないか、offに設定されていることを確認してください。
Patrick

〜/ .inputrcはありますが、Horizo​​ntal-scroll-modeが設定されておらず、offに設定しても動作は変わりません。input-metaとoutput-metaをオン、convert-metaをオフにしていますが、これらの設定を削除しても動作は変わりません。
selassid
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.