less -Sが全画面を占有しないようにする方法

less -Sが全画面を占有しないようにする方法

私がこれを持っているとしましょう:cat new_file.txt | less -FRSX

次に、右ボタンを押して右にスクロールするとします。

これにより、new_file.txtの内容がコマンドラインの一番上に移動され、new_file.txtの内容と現在のコマンドの間に多くの空きスペースがあります。

たとえば、次のようになります。

contentsofnewfile.txtyupmorecontenntsconteeentsss
~
~
~
~
~
~
~
~
.
.
.
~
(END)

右ボタンを押してもファイルの内容が一番上に移動するのではなく(まだ右にスクロールする必要がある)、空白行がないようにするにはどうすればよいですか?

~
~
~

上記の

答え1

(私が8年ぶりに同じ問題を経験した世界の2人目であり、Unix / Linuxの使用歴史上2人目だとは信じていません。)

分析する

  • less似たようなものがありますかmore -c?はい-c、機能があります。
  • less似たようなものがありますかmore -20?はい-z 20、しかし故障しました(下記の引用を参照)。
  • 効果的ですかless --window=-5?はい、しかし予想とは違って故障しました(下記の引用を参照)。
  • 期待どおりに動作しますかLINES=5 less --window=5?いいえ、故障しました(下記の引用を参照)。
  • less -c -5機能が似ていますかmore -c -5? (この場合)行が5個以下の場合にのみそして何のキーも押さなかった。
  • less -F好きなように動作しますか? (OP) 画面に十分な文字スペースがありますか?はい。

-5 -z5 -z 5 --window=5すべて機能的に同じです。

-zもしそうならいいえマニュアルに記載されているとおりに機能します。

z一部のバージョンとの互換性のために省略することができます。

...そして何するそれは何をしますか?

結論として

--window=ただ設定する~によると前方スクロール/後方スクロールページサイズ--max-forw-scroll(合意下数--max-back-scroll)、透視窓の大きさではない

なぜこのように動作しますか?まあ、-z最初に追加されたとき(まだREADME機能です)仕事をしました。「一部バージョンの追加」と同じです。しかし、ほとんど同時に、彼らは次の引用に記載されているコードを導入しました-z

(ロング) マニュアルページに段落がありますすぐ下の近く

環境変数

COLUMNS

画面の列数を設定します。TERM変数で指定された列数よりも優先されます。 (しかし、TIOCGWINSZまたはをサポートするWindowsシステムがある場合は、WIOCGETDWindowsシステムの画面サイズの理解がLINES環境COLUMNS変数よりも優先されます。)

LINESこれは問題の変数であり、OP(および私)に影響します。

less -5に比べて期待される機能は何ですかmore -5Compatibility With Moreドキュメントの()部分が提案するのと同じように機能する必要があり、次のようにless使用できますmore(私はこれを行うシステムを使用しました)

プログラムが "more" というファイルリンクを介して呼び出されると、less は (ほとんど) POSIX more コマンド仕様に従って動作します。

私はPOSIX仕様が現在の実装に-z問題があると確信しています。

より少ない改善が提供されるため、一度だけ機能すると予想されます。否定的な値は以下に基づいて機能します。一番下画面。

私の考えでは、これが台無しになったと思います。当時、テストとユースケースは十分ではなく、それを実装した人が新しい「動的ウィンドウ値」を実装した人と同じではありませんでした。

最新のリソースを開いて明日を見てみましょう。

答え2

一つを作ってみてくださいcat new_file.txt | less -FRSXc。これにより、最初の問題が解決されます。

2番目の質問にはチルダを使用してください。cat new_file.txt | less -FRSXc~

マニュアルページには次のものがあります。

-c または --clear-screen を使用すると、一番上の行から下に全画面再描画が行われます。デフォルトでは、フルスクリーンの再描画は画面の下部をスクロールすることによって行われます。

-~ または --tilde 通常、ファイルの末尾の後の行は単一のチルダ (~) で表されます。このオプションを使用すると、ファイルの末尾の後の行が空行として表示されます。

関連情報