実行中のスクリーンセッションでスクロールバックバッファーを増やすにはどうすればよいですか?


237

パテを介して操作している現在実行中のスクリーンセッションがあるとします。スクロールバックバッファーが小さすぎることに気づきました。新しい画面セッション開始せずにそれを増やしたいと思っています。

これを行う方法はありますか?


新しいセッションを開始するときに誰かがスクロールバックバッファを増やしたい場合に備えて:screen -h <numlines>
Scz

回答:


180

manページには、次のように入力して、実行中のセッションでコマンドラインモードに入ることができることを説明Ctrl+をA:その後、発行、scrollback <num>コマンドを。


4
現在の画面のウィンドウごとに個別に行う必要があります。
Matthew Wilcoxson、2015

2
<num>スクロールバックの行数はどこ
ですか

デフォルトの最大バッファに到達するとscrollback <num>、それ以上の履歴を表示できないことがわかり、で設定しても、バッファを拡張することはできません。履歴バッファ全体を取得するには、最後のコマンドをやり直す必要があります。
カミル

362

押してCtrl-a、その後:、その後タイプ

scrollback 10000

たとえば、10000行のバッファーを取得します。

追加することで、スクロールバック行のデフォルトの数を設定することもできます

defscrollback 10000

あなたに ~/.screenrcファイルに。

スクロールするには(端末でデフォルトで許可されていない場合)、を押しCtrl-a ESCてからスクロールします(通常Ctrl-fは次のページまたはCtrl-a前のページ、またはマウスホイール/ 2本の指で)。スクロールモードを終了するには、ESCます。

別のヒント:Ctrl-a i現在のバッファ設定を表示します。


9
Ubuntu 12.10で1024に設定されているdefscrollbackのヒント(作業時に使用する必要がある)の+1。
erik 2014

2
byobu-screenUbuntuの12.04で10000にdefscrollbackを設定しているようだ
chronospoon

4
screenrcが追加の条件を開く場合、ウィンドウを開く前にdefscrollbackを配置する必要があることを指摘しておきます。そうしないと、デフォルトの1024が取得されます
majikman

Macでは動作しません。startup_message off' and 'defscrollback 5000' into my newly created 〜/ .screenrc` を入れて最初の行を取得していますが、2番目の行は無視されているようです。
ベン・

9

「puttyセッション」内で「screen」セッションを開始するとき、最小量の「デフォルト」バッファーがあります。私は仕事で画面を頻繁に使用しているので、「画面」セッション内に「画面」バッファーと「パテ」バッファーの組み合わせがないことをお伝えします。

ファイルに追加defscrollback 10000 してデフォルトのスクロールバック行数を設定するの~/.screenrcが正しい解決策です。

ちなみに、./screenrcファイルでは「defscrollback 200000」を使用しています。


4

すでに述べたように、2つの方法があります。

 画面ごと(セッション)のインタラクティブ設定

そしてそれはインタラクティブに行われます!そして、すぐに有効になります!

CTRL + A続い:て入力しscrollback 1000000、ヒットしますENTER

画面から離れて戻ってきます!常に同じです。

別の新しい画面を開きます!そして値は再びデフォルトにリセットされます!したがって、それはグローバルな設定ではありません!

 そして永続的なデフォルト設定

これは(自宅で)に追加defscrollback 1000000することで行われます.screenrc

defscrollbackないscrollback(defはデフォルトを表す)

知っておくべきことは、ファイルが作成されていないかどうかです。あなたはそれを作成します!

> cd ~ && vim .screenrc

そしてあなたはdefscrollback 1000000それに追加します!

または1つのコマンドで

> echo "defscrollback 1000000" >> .screenrc

(まだ作成されていない場合)

発効

にデフォルトを追加すると.screenrc!再接続時に既に実行中の画面は有効になりません!の.screenrc画面作成時に実行!そしてそれは理にかなっています!通常のコンソールとシェルの起動と同じように!

そして、新しく作成されたすべての画面には設定値があります!

画面の有効バッファーサイズの確認

タイプをチェックCTRL + Aするにはi

そして結果は

ここに画像の説明を入力してください

重要なことに、バッファサイズ+記号の後の数値です
(図では、1 000 000に設定しています)。

インタラクティブに変更する場合にも注意してください!効果はすぐに現れ、デフォルト値を引き継ぎます!

スクロール

CTRL+ A続いてESC(コピーモードに入ります)。

次にUpDownまたはで移動しますPgUp PgDown

そして、ESC再びそのモードを終了します。

(追加情報:ヒットをコピーしENTERて選択を開始ENTERします。次にもう一度コピーします!シンプルでクールです)

バッファが大きくなりました!

そして、それは重要な詳細のためにそれを要約します!


スクロールする方法の手順を知るのは素晴らしいことです!
スカイツリー

ありがとう。CTRL + Aに続けてi
alphaGeek

3

警告:この値を高く設定しすぎると、システムで重大な問題が発生する可能性があります。設定する値が大きいほど、スクリーンセッションを開始するときにスクリーンプロセスに割り当てられる仮想メモリが多くなります。〜/ .screenrcを "defscrollback 123456789"に設定し、画面を開始すると、システム全体が10分間フリーズしてから、画面プロセスを強制終了できるようになりました(16.6GBを消費していました)。それまでにVIRT memの)。


-3

後世のために、スティーブン・ルーが指摘したように、この答えは正しくありません。ただし、元のテキストはそのままにします。

元の答え:

(数年後)ウェブ検索で到着した方へ...

画面を使用する場合、スクロールバックバッファーは両方の組み合わせです。 screen前の2つの回答で述べたスクロールバックバッファーとパテスクロールバックバッファー。

パテスクロールバックバッファと画面スクロールバックバッファの両方を増やしていることを確認してください。そうでない場合、パテウィンドウ自体では、スクロールバックしてのスクロールバックscreen履歴を表示できません(で画面内をスクロールすることで克服ctrl+a->ctrl+u

設定の「ウィンドウ」カテゴリでパテのスクロールバック制限を変更できます。exitOPが要求したように、画面へのパテセッションを終了して再開しても、画面は閉じません(パテウィンドウを閉じてと入力しないと仮定)。

画面のスクロールバックバッファを増やしても問題が解決しない理由を特定できれば幸いです。


17
これは不正確です。画面は独自のバッファを保持します。コピーモードを使用して画面を上にスクロールすると、画面はcursesを介して画面の履歴をフィードします。screenなどのターミナルマルチプレクサーが使用されている場合、ネイティブターミナルエミュレーターのバッファーは使用されていません(副作用としてガベージを蓄積する場合と蓄積しない場合があります)
Steven Lu

良い点、私はあなたが正しいと信じています...私の答えを削除する必要がありますか?
Brad P.

よく分かりません。それは人々が好きなように思われる私のコメントも削除するので。
Steven Lu

3
ははは、そうだね。正しくないことに注意して編集しますが、元のテキストはそのままにしておきます
Brad P.

2
はい、ありがとう。私はこのようなサイトには追加の変更のみを残し、人々が混乱することなくそこから離れることができるようにしたいと思います。
Steven Lu
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.