ターミナルで水平スクロール

ターミナルで水平スクロール

だから私はすでに2つの質問があると思います。これらすべてが関連しているので、tail -f「あまり使用しない」という接線的な答えになります。

すべての操作、すべてのコマンドなどを実行するために必要です。問題は、多くのコンソールウィンドウを実行し、複数のモニタを使用してもウィンドウを減らす必要があることです。その結果、ほとんどすべての出力が改行文字によって破損し、読みにくくなります。

提案された解決策の1つはecho -ne '\e[?7l'ある程度動作することです。これで問題は、コンソールにスクロールバーを表示する方法があるかどうかです。

Ubuntu 12.10、ターミナル

答え1

あなたが要求するのは、一部が表示される無限幅端末です。これは、端末が伝統的に動作する方法ではなく、アプリケーションが動作することを期待する方法でもありません。

たとえば、端末の幅が無限の場合、画面の中央に何かを表示しようとすると、視覚アプリケーションはどのように機能しますか?

しかし、できることはGNUを使用しscreen(画面がより大きな端末の小さなウィンドウをどのように表示するかを知るために、さまざまなサイズの複数の端末でスクリーンセッションを接続できる必要があります)、ウィンドウの幅をscreen実際に大きな値に設定することですです。次に、画面の幅が元の幅であるかのように、視覚的なアプリケーションをだます。

いいね(内部screen

c=$COLUMNS # assuming your shell has that variable
screen -X width -w 1000
stty cols "$c"

一部のビジョンアプリはうまく機能しますが、一部はあまりうまく機能しません(相対位置決めを実行したり、インストール時に端末のパッケージングに依存する場合)。vimうまくいくようです。

screenその後、データをスクロールしてコピーして貼り付けるには、「s」を使用することが唯一のオプションです。コピーモデル。 (<prefix>])とカーソルの周りに移動(info -f screen -n Movement参照コピーモデル)。

tmux同様の能力を持っているかもしれません。

これterminator端末エミュレータ(Javaベース)これはありませんterminatorUbuntuに付属これは無限の端末幅で行うこともできます。

  • 行は決して並んでいません
  • ビジョンアプリケーションでは、画面の幅が無限大ではなく、ウィンドウに合った幅であることを伝えます。
  • また、terminfoエントリは改行を行わないと主張するので、上記のベースソリューションよりもうまく機能します。screenしたがって、アプリケーションはこれを認識し、行の先頭のBSは前の行の終わりに移動しません。

答え2

Emacsは基本的にエディタでIDEですが、あなたの問題にぴったりです。 Emacsウィンドウ内でプログラムを実行することができ、Emacsはそれを幅と高さが無制限の愚かな端末に表示します。カーソルがバッファの末尾にある場合、プログラムが出力を生成するとウィンドウがスクロールします。カーソルを移動すると、出力が大きくなってもウィンドウはそのまま残ります。

Emacsバッファからシェルを起動するにはM-x shell RET(例:Alt+)と入力します。別のシェルをx shell Return入力C-u M-x shell RETまたはM-1 M-x shell RET開始します。各シェルでプログラムを実行し、必要に応じて複数のウィンドウにバッファを配置できます。

¹時々、人々はこれがエディタよりも優れたオペレーティングシステムであると言いますが、それを使用していない人だけがそう言います。それはただ冗談です。

関連情報