web-dev-qa-db-ja.com

端末のように画面を機能させる(スクロール+代替画面)

screenなしでGNOMEターミナルを使用するのと同じように、またはそれにできるだけ近いssh(GNOMEターミナルからscreen経由)を使用したいと思います。具体的には:

GNOMEターミナルでは、マウスホイール、スクロールバー、または Shift+PgUp/PgDnscreenでは、コピーモード(Ctrl+A[)スクロールバックできるようにします(その後、マウスホイールが機能します)。 スクロール動作は変更できますこの回答 および この回答 を参照)が、この解決策には次の欠陥があります

  1. lessまたはvimでファイルを開くと、マウスホイールでエディターの「ウィンドウ」の上をスクロールして、ターミナルの以前の内容を確認できます。
  2. エディターを閉じると、その内容は消えるのではなく、スクロールバックバッファー(場合によっては複数のコピー)に残ります。

この動作はaltscreen onを使用して変更できます( この回答 を参照)が、唯一の効果は、エディターを閉じると、古い端末の内容が追加されることですターミナルウィンドウのスクロールバックバッファに移動します。これにより、マウスホイールを使用してスクロールバックしたときに、エディタがらくたを表示できます。

これは、screenでNiceスクロールを実行できないことを意味しますか?基本的に、コピーモードと同じように(可能な場合はマウスホイールとスクロールバーを使用して)スクロールできますが、コピーモードに入る必要はありません。

6
ondra.cifka

おそらく、あなたが求めているものを手に入れることはできません。

ターミナルの観点から:

  • screenは、vilessと同じように、フルスクリーン(しゃれなし)のアプリケーションです。
  • ターミナルはスクロールと代替画面を実装しています。
  • 端末が代替画面モードの場合、通常モードの場合のようにスクロールバック領域に追加されません。
  • gnome-terminal(およびおそらく他のいくつか— xtermのオプション)では、ターミナルはアプリケーションにあるときに上/下矢印キーを送信します代替画面モード。
  • 代替画面モードでnotの場合、端末は、画面内で実行されているアプリケーションに通知することなく、表示画面と端末のスクロールバック領域をスクロールします。

screenから:

  • screenknowマウスやスクロールについては何もしません。その情報をscreen内で実行されているアプリケーションに渡します。
  • screensimulates代替画面;ターミナルの代替画面にアクセスする方法はありません。
  • 質問に示されているように、端末の代替画面機能を無効にすることができます。

つまり、screenには端末のスクロールバックにアクセスする方法がないため、利用可能な選択肢は端末が提供するものです。

3
Thomas Dickey